Django views视图, since 2022-01-12

(2022.01.13 Thur)
视图views,python函数集,接收web的请求,返回web响应。不管请求如何,都要提供响应。一般放在views.py文件里,也可放在其他文件里。每个视图函数都返回一个HttpResponse对象,对象中包含响应。视图函数的两个重要对象,分别是输入的请求对象request和响应对象HttpResponse

请求对象request

请求对象request,包含了HTTP请求报文的基本信息(点击这里查看),重要属性如下

GET

包含HTTP GET的所有参数,其数据类型是QueryDict,类Python字典。若有相同key,则所有值放在对应列表里。

# views.py
def fun(request):
    d = request.GET.get('date') # 如果'date'含多个值,则只去最后的值
    return HttpResponse(d)

POST

包含HTTP POST的所有参数,类型同GET。常用于表单form,form中的name对应了POST参数的key,value对应了POST参数的value。

body

数据类型为二进制字节流,原生请求体中的参数,用于POST请求,因为GET请求没有body。

def fun(request):
    u = request.body
    print(u)
    return HttpResponse(u)

path

字符串类型,URL中的路径部分。

request.path

method

获取当前请求方式,字符串类型,大写。

def xxx(request):
    ...
    print(request.method)
    return xxx
$ POST

视图响应对象的三种形式

HttpResponseredirectrender,其中后两种是第一种的封装。render底层返回的是HttpResponseredirect底层继承的是HttpResponse

  • HttpResponse: 返回文本,参数为字符串,字符串中写文本内容,如果字符串里含有HTML标签/格式,也可以渲染。
  • render:格式render(request, 'xxx.html', {"field": "value"}),返回xxx.html页面,最后一个字典用于传递参数进该页面。
  • redirect:格式redirect('xxx.html'),重定向,跳转新页面,参数为字符串,也就是跳转的页面。一般用于表单form提交后,跳转到新页面。

Reference

1 runoob菜鸟教程
2 Django doc

你可能感兴趣的:(Django views视图, since 2022-01-12)