(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
视图响应对象的三种形式
HttpResponse
,redirect
,render
,其中后两种是第一种的封装。render
底层返回的是HttpResponse
,redirect
底层继承的是HttpResponse
。
-
HttpResponse
: 返回文本,参数为字符串,字符串中写文本内容,如果字符串里含有HTML标签/格式,也可以渲染。 -
render
:格式render(request, 'xxx.html', {"field": "value"})
,返回xxx.html
页面,最后一个字典用于传递参数进该页面。 -
redirect
:格式redirect('xxx.html')
,重定向,跳转新页面,参数为字符串,也就是跳转的页面。一般用于表单form提交后,跳转到新页面。
Reference
1 runoob菜鸟教程
2 Django doc
网友评论