请求和响应
请求是指浏览器端通过HTTP协议发送给服务器端的数据
响应是指服务器端接收到请求后做相应的处理后再回复给浏览器端的数据
Django中的请求
请求在Django中实则就是 视图函数的第一个参数,即HttpRequest对象
Django接收到http协议的请求后,会根据请求数据报文创建HttpRequest对象
HttpRequest对象 通过属性 描述了 请求的所有相关信息
path_info:URL字符串
method:字符串,表示HTTP请求方法,常用值:GET'、POST
GET:QueryDict查询字典的对象,包含get请求方式的所有数据
PSOT:QueryDict查询字典的对象,包含post请求方式的所有数据
FILES:类似于字典的对象,包含所有的上传文件信息
COOKIES:Python字典,包含所有的cookie,键和值都为字符串
session:似于字典的对象,表示当前的会话
body: 字符串,请求体的内容(POST或PUT)
scheme:请求协议(http'/https')
request.get _full_path():请求的完整路径
request.META:请求中的元数据(消息头)
request.META['REMOTE_ADDR']客户端IP地址
Django中的请响应
构造函数格式
HttpResponse(content=响应体,content_type=响应体数据类型,status=状态码
作用:同时携带响应体内容向客户端浏览器返回响应,
GET
GET请求动作,一般用于向服务器获取数据
能够产生GET请求的场景
浏览器地址栏中输入URL,回车后
<a href="地址?参数=值&参数=值">
form表单中的method为get
request.GET['参数名 ] # QueryDict
request.GET.get('参数名’,默认值')
request.GET.getlist('参数名')
# mypage?a=100&b=200&C=300&b=400
# request.GET=QueryDict(f'a':['100'],'b':['200','400'],'c':['300']})
#a = request.GET['a']
# b = request.GET['b']# Error
POST
POST请求动作,一般用于向服务器提交大量/隐私数据数据
客户端通过表单等POST请求将数据传递给服务器端如
<form method-'post' action="/login">
姓名:<input type="text" name="username'
<input type='submit'vaTue='登陆'>
</form>
使用post方式接收客户端数据
request.POST['参数名 ] # request.POST 绑定QueryDict
request.PosT.get('参数名’,'')
request.PosT.getist('参数名')
取消csrf验证,否则Django将会拒绝客户端发来的POST请求报403响应
暂时解决方式是在setting.py中注释掉
#'django.middleware.csrf.CsrfViewMiddleware',