Django之Views
1. 视图层
一个视图函数,简称视图,是一个简单的 Python 函数,它接受 Web 请求并且返回 Web 响应。
响应可以是一个 HTML 页面、一个 404 错误页面、重定向页面、XML 文档、或者一张图片...
无论视图本身包含什么逻辑,都要返回响应。代码写在哪里都可以,只要在 Python 目录下面,一般放在项目的 views.py 文件中。
每个视图函数都负责返回一个 HttpResponse 对象,对象中包含生成的响应。
视图层中有两个重要的对象:请求对象(request)与响应对象(HttpResponse)
2. 请求对象
1. GET
数据类型是QueryDict,一个类似于字典的对象,包含HTTP GET的所有参数
取值格式:对象.方法
get():返回字符串,如果该键对应有多个值,取出该键的最后一个值。
例子
views.py
from django.shortcuts import render
from django.http import HttpResponse
def login(request):
a=request.GET.get('name')
print(a)
return HttpResponse("我是张学友")
访问:http://172.16.7.244:8081/zhangxueyou/login/?name=aaa
2. POST
数据类型是 QueryDict,一个类似于字典的对象,包含 HTTP POST 的所有参数。
常用于 form 表单,form 表单里的标签 name 属性对应参数的键,value 属性对应参数的值。
取值格式: 对象.方法。
get():返回字符串,如果该键对应有多个值,取出该键的最后一个值。
3. body
数据类型是二进制字节流,是原生请求体里的参数内容,在HTTP中用于POST,因为GET没有请求体。
def runoob(request):
name = request.body
print(name)
return HttpResponse("菜鸟教程")
结果:b'csrfmiddlewaretoken=jMUoLPeG9taNG0JGFQk7KsGL36b3LNhafoUSPpPuwzykVl3DEk22yiVcmwht5iw1&q=cccccc'
4. path
获取URL中的路径部分,数据类型是字符串
def runoob(request):
name = request.path
print(name)
return HttpResponse("菜鸟教程")
结果:/zhangxueyou/login/
5. method
获取当前请求的方式,数据类型是字符串,且结果为大写
def runoob(request):
name = request.method
print(name)
return HttpResponse("菜鸟教程")
结果:GET
3. 响应对象
响应对象主要有三种形式:HttpResponse(), render(),redirect()
1. HttpResponse()
返回文本,参数为字符串,字符串中写文本内容。如果参数为字符串里含有html标签,也可以渲染。
def hello(request):
return HttpResponse("猴子牛逼")
def hello(request):
return HttpResponse("<a href='https://www.baidu.com/'>猴子亚洲第一牛逼少</a>")
2. render()
返回文本,第一个参数为 request,第二个参数为字符串(页面名称),第三个参数为字典(可选参数,向页面传递的参数:键为页面参数名,值为views参数名)。
def name(request):
test_name=91
return render(request,'name.html',{"num":test_name})
3. redirect()
重定向,跳转新页面。参数为字符串,字符串中填写页面路径。一般用于 form 表单提交后,跳转到新页面。
def runoob(request):
return redirect("/index/")

浙公网安备 33010602011771号