views.py是业务的请求和处理文件。
在views模块中,request参数是一个HttpRequest的一个请求。可以使用isinstance()函数查看是否为request是否为HttpRequest的一个子类
Request对象
结果为True。
详情见官方文档:https://docs.djangoproject.com/en/3.0/ref/request-response/
常见的HttpRequst请求:
path | Request请求的路径 |
method | Request请求的方法 |
GET | 包含所有给定HTTP GET参数的类字典对象 |
POST | 包含所有给定HTTP POST参数的类字典对象 |
COOKIES | 包含所有cookie的字典。键和值是字符串。 |
user | 用户的验证 |
GET是在游览器地址中进行传递。POST不会在游览器中传递,但是,对应的GET和POST方法都是一个QueryDict objects
比如在游览器器的地址中输入 ?name=12345
在对应的request中,GET为一个字典序列,所以可以通过字典方式输出name的具体值。
够着一个POST表单:
输出POST结果就是
get是url游览器地址提交,post不会出现在游览器中。这里get提交name=”123“ ,key是name, post提交,name=”key“,这里的值是”key“
Response对象
可以直接使用HttpResponse进行一个直接的内容返回。
这里的render函数就是一个HttpResponse的一个子类的方法实现。
render第一个为Request请求,第二个为渲染的模板,第三个为content内容,用于模板标签
的使用。
在render传入content内容的时候,可以使用locals的方法
1 | def index(request): |
此外还有一个方法,redirect,也是一个HttpResponse的实现,是直接进行网页的跳转。
这样就会直接跳转到百度。
同理,也可以直接跳转到本地设置的路径。
但是不能跳转到当前路径,不然就会进行死循环跳转。