1.request对象

HTTPRequest对象就是咱们的视图函数的参数request

def home(request):
print(request) #<WSGIRequest: GET '/home/'>
# print(dir(request))

请求相关的常用值

  • path_info 返回用户访问url,不包括域名
  • method 请求中使用的HTTP方法的字符串表示,全大写表示。
  • GET 包含所有HTTP GET参数的类字典对象
  • POST 包含所有HTTP POST参数的类字典对象
  • body 请求体,byte类型 request.POST的数据就是从body里面提取到的

示例:

#/home/  纯路径
print(request.path) #/home/ 纯路径
print(request.path_info) #/home/?a=1&b=2 全路径(不包含ip地址和端口)
print(request.get_full_path()) #请求头相关数据,是一个字典
print(request.META) #一个字符串,表示请求使用的HTTP 方法。必须使用大写。
print(request.method) #一个类似于字典的对象,包含 HTTP GET 的所有参数
print(request.GET) #一个类似于字典的对象,如果请求中包含表单数据,则将这些数据封装成QueryDict对象。
print(request.POST) #能够拿到请求数据部分的数据(post,get没有)
print(request.body) #清除session 一般用于退出登录 注销
request.session.flush

2.HTTPResponse对象

redirect 重定向

from django.shortcuts import render,HttpResponse,redirect
def home(request):
#return HttpResponse("字符串")
#return render(request, 'xx.html') #页面
return redirect('/index/') #路径

urls中定义好路径(被访问的路径)(要跳转的路径)

from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
path('home/', views.home),
path('index/', views.index),
]

views中设置跳转

def home(request):
return redirect('/index/') #路径 def index(request):
return render(request, 'index.html') #页面

render可渲染html的变量

def  index(request):
v = "我真的好想你"
#模版渲染,这是在回复给浏览器之前做的事
return render(request, 'index.html',{v:v})
<div>可是我还想你啊,小猪</div>
<div>{{ v }}</div>

3.FBV和CBV

视图(视图函数和视图类)

类视图 CBV

views.py

from django.shortcuts import render,HttpResponse,redirect

#先引入类视图模块用于继承
from django.views import View class LoginView(View):
#处理get请求
def get(self,request):
return render(request,'login.html')
#处理post请求
def post(self,request):
print(request.POST)
return HttpResponse("登陆成功")

urls.py路由写法

path('login/', views.LoginView.as_view()),#根据请求选择方法

html

<form action="" method="post">
用户名: <input type="text" name="username">
密码 : <input type="text" name="pwd">
<input type="submit">
</form>

4.视图加装饰器

views.py

def wrapper(func):
def inner(*args,**kwargs):
print(111)
ret = func(*args,**kwargs)
print(222)
return ret
return inner @wrapper
def index(request):
print('我还想你')
return HttpResponse("又有何用")

给视图类加装饰器

方法一: 常用

from  django.views import  View
from django.utils.decorators import method_decorator class LoginView(View):
#处理get请求
@method_decorator(wrapper)
def get(self,request):
return render(request,'login.html')
#处理post请求
def post(self,request):
print(request.POST)
return HttpResponse("登陆成功")

方式二: 不常用

@method_decorator(wrapper,name="get")
class LoginView(View):
#处理get请求
def get(self,request):
return render(request,'login.html')
#处理post请求
def post(self,request):
print(request.POST)
return HttpResponse("登陆成功")

Dango之视图函数的更多相关文章

  1. Django视图函数

    一.视图函数 1. 视图函数的第一个参数一定是一个HTTPRequest类型的对象,这个对象是Django自动创建的,具体形参名通常用request.通过这个对象,可以调用请求的一些参数,比如requ ...

  2. Django创建模板、URL模式、创建视图函数

    1.在应用目录下创建模板(templates目录) 在模板目录下创建archive.html <!DOCTYPE html> <html lang="en"> ...

  3. Flask04 后台获取请求数据、视图函数返回类型、前台接受响应数据

    1 后台获取请求数据 1.1 提出问题 前台发送请求的方式有哪些 后台如何获取这些请求的参数 1.2 前台发送请求的方式 GET.POST.AJAX 点睛:如果不指定请求方式,浏览器默认使用GET请求 ...

  4. Django创建通用视图函数

    想在我们有两个视图: def thinkingview(request): user = request.user if request.method == 'GET': return render( ...

  5. Django - - - -视图层之视图函数(views)

    视图层之视图函数(views) 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档 ...

  6. python web框架篇:views视图函数

    Django请求的生命周期是怎样的? 简单地说,通过URL对应关系匹配 ->找到对应的函数(或者类)->返回字符串(或者读取Html之后返回渲染的字符串) 解剖起来如下: 1. 当用户在浏 ...

  7. flask 视图函数的使用

    flask框架 视图函数当中 各种实用情况简单配置 1 建立连接 2 路由参数 3 返回网络状态码 4 自定义错误页面 5 重定向 6 正则url限制 和 url 优化 7 设置和获取cookie # ...

  8. Django Views(视图函数)

    http请求中产生两个核心对象: http请求:HttpRequest对象 http响应:HttpResponse对象 所在位置:django.http 之前我们用到的参数request就是HttpR ...

  9. Flask实战第6天:视图函数Response返回值

    视图函数的返回值会被自动转换为一个响应对象,Flask的转换逻辑如下: 如果返回的是一个合法的响应对象,则直接返回 可以使用make_response函数来创建Response对象,这个方法可以设置额 ...

随机推荐

  1. tp5最强分页 自定义model,控制器引用。只显示一页

    1.不多逼逼 model 代码 <?phpnamespace app\common\model; use think\Model; class Fpage{ private $page;//当前 ...

  2. redux 第二部分

    redux 的使用方法, 为什么使用 action.js 文件,进行优化代码将其分开,然后我们通过工厂函数的每次返回不同的对象,由于参数是固定的,每次返回的都是事件类型和事件数据,所以我们可以使用一个 ...

  3. vue 混入 mixin,自定义指令,过滤器

    vue 混入 mixin ,分发 vue 组件中重复的功能 局部的书写格式 // mixin.js var mymixin = {  // 这是一个对象:对象里面的写法与组件里面的写法一模一样,组件该 ...

  4. Python: sklearn库——数据预处理

    Python: sklearn库 —— 数据预处理 数据集转换之预处理数据:      将输入的数据转化成机器学习算法可以使用的数据.包含特征提取和标准化.      原因:数据集的标准化(服从均值为 ...

  5. 爬虫 lxml 模块

    Xpath 在 XML 文档中查找信息的语言, 同样适用于 HTML 辅助工具 Xpath Helper Chrome插件  快捷键 Ctrl + shift + x XML Quire xpath ...

  6. ArrayList去除集合中字符串的重复值

    package com.heima.list; import java.util.ArrayList; import java.util.Iterator; import java.util.List ...

  7. springboot启动报错:Failed to configure a DataSource

    一.背景 springboot的出现,让项目搭建变得更方便快捷,同时简化掉很多的样板化配置代码,提高开发效率. 通过idea生成springboot项目,启动报错:Failed to configur ...

  8. 阶段3 3.SpringMVC·_06.异常处理及拦截器_4 SpringMVC拦截器之介绍和搭建环境

    拦截器可以有多个 搭建环境 不用改,直接finish 复制原来项目的 依赖的包也复制过来 web.xml配置前端控制器 springmvc的配置文件 先创建对应的文件夹 分别创建java和resour ...

  9. H5本地存储技术

    H5 Web存储技术 前言 web存储技术在初期的时候被定义为HTML5的一部分作为其API.后来被独立出来作为一份独立的标准. web存储标准包含localStorage对象和sessionStor ...

  10. 增加游戏受众:在英特尔核显上运行MR游戏

    为了获得良好的用户体验,通常VR游戏需要稳定在每秒90帧,这意味着整个场景只有11.1毫秒的时间来进行左右眼渲染,这就是为何VR游戏需要配备高端的独立显卡.现在来看看我们如何使用最新版英特尔图形性能分 ...