一、HttpRequest对象
服务器接收到http协议的请求后,会根据报文创建HttpRequest对象视图函数的第一个参数是HttpRequest对象在django.http模块中定义了HttpRequest对象的API。
二、GET和POST请求
在HTML中,form表单的作用是收集标签的内容,<form>...</form>中间可以由访问者添加类似于文本,选择,或者一些控制模块等等,然后这些内容将会被送到服务端。
一个表单必须指定两样东西:
1. form的method参数用于设置表单的提交方式,默认使用POST
2. action用于设置表单的提交url,如果不写或者保持空字符串,那么将使用当前的URL。
get提交例子:
1. get提交的参数会在url中显示
2. 可以通过request.GET.get的方法获取提交的参数
post提交例子:
1. post的提交方式不会再url中显示参数
2. 可以同request.POST.get方式来获取提交的数据
getlist方法:
request对象的属性GET、POST都是QuerySet类型的对象,与python字典不同,QueryDict类型的对象用来处理同一个键带有多个值的情况
---方法get(): 根据键获取值,只能获取键的一个值;如果一个键同时拥有多个值,获取最后一个值;
---方法getlist():根据键获取值将键的值以列表返回,可以获取一个键的多个值。
GET属性:
-- QueryDict类型的对象;
-- 包含get请求方式的所有参数;
-- 包含url请求地址中的参数对应,位于?后面;
-- 参数的格式是键值对,如key1=value1;
-- 多个参数之间,使用&连接,如 key1=value1&key2=value2。
POST属性:
-- QueryDict类型的对象;
-- 包含post请求方式的所有参数;
-- 与form表单中的控件对应;
-- 表单中控件要由name属性,则name属性的值为键,value属性的值为值,构成键值对提交;
-- 对于checkbox控件,name属性一样为一组,当控件被选中后会被提交,存在一键多值的情况。
GET和POST请求方式总结:
1. GET:GET如其名,是从服务器获取数据,不会更改服务器的状态和数据,在URL中携带参数发送给服务器;
2. POST则是将一定量的数据发送给服务器,一般会更改服务器的数据;
3. POST方法的参数不能再URL当中看到,他是通过body参数传递给服务器的,所以相对GET方法直接能在URL当中党刊传递的参数,显得更加安全一些,当然,也不能简单的判定POST方法比GET方法更安全,要是网站保持安全,需要做更多的安全处理。
三、类视图
View类视图以请求方式为类方法。在对应的方式下面编写对应的逻辑函数。
view类视图的引用。在urls.py中配置路由是通过as_view()
四、文件上传
Django在处理文件上传的时候,文件数据被保存在request.FILES,FILES中的每个键为<input type="file“ name=""/> 中的name
1. Django项目中文件路径配置
2. 文件上传form表单中:FILES只有在请求方式为POST且提交的<form>带有enctype=“multipart/form-data”的情况下才会包含数据。否则,FILES将为一个空的类似于字典的对象。
3. 配置好文件上传的视图函数:在请求方式为GET时进行页面跳转,在请求方式为POST时进行数据获取并保存,否则进行报错!
五、HttpResponse
HttpResponse的子类
返回数据的响应函数有:
HttpResponse() 返回简单的字符串对象
render() 渲染模板
redirect() 重定向,一般搭配reverse("xxxx.html")使用
JsonResponse() 返回json数据
补充:
客户端和服务端都是怎么记录登录的状态的呢?
浏览器中的cookie:
服务器中设置cookie及获取cookie:
注:设置cookie值以及删除cookie值都是response对象的操作,而获取cooike是从request相应中获得的。
标签:请求,GET,--,响应,参数,提交,POST,1109 From: https://www.cnblogs.com/lxinghua/p/17425039.html