request.xxx
path_info URL字符串
method 字符串 表示HTTP请求方法 常用值 GET 、 POST
GET QueryDict查询字典的对象 包含GET请求方式的所有数据
POST QueryDict查询字典的对象 包含POST请求方式的所有数据
FILES 类似于字典的对象 包含所有的上传文件信息
cookieS python字典 包含所有的cookies 键和值都为字符串
session 类似于字典的对象 表示当前的会话
body 字符串 请求体的内容 POST或PUT
scheme 请求协议 http/https
request.get_full_path() 请求的完整路径
request.meta 请求中的元数据 消息头
request.meta[ REMOTE_ADDR ] 客户端的IP地址#http://127.0.0.1:8000/test_request?a 1 b 1
print( !path info is ,request.path_info)
print( !method is ,request.method)
print( !querystring is ,request.GET)
print( !full path is ,request.get_full_path())
!path info is /test_request
!method is GET
!querystring is QueryDict: { a : [ 1 ], b : [ 1 ]}
!full path is /test_request?a 1 b 1
Django中的响应
响应状态码
200 - 请求成功301 - 永久重定向-资源 网页等 被永久转移302 - 临时重定向404 - 请求的资源 网页等 不存在500 - 内部服务器错误 分类分类描述1**信息 服务器收到请求 需要请求者继续执行操作2**成功 操作被成功接收并处理3**重定向 需要进一步的操作以完成请求4**客户端错误 请求包含语法错误或无法完成请求5**服务器错误 服务器在处理请求的过程中发生了错误 Django中的响应对象构造函数格式:
HttpResponse(content 响应体,content_type 响应体数据类型(默认为html),status 状态码(默认为200))
作用
向客户端浏览器返回响应 同时携带响应体内容
常用的Content-Type
text/html 默认 html文件 text/plain 纯文本 text/css css文件 text/javascript js文件 multipart/form-data 文件提交 application/json json传输 application/xml xml文件 HttpResponse子类from django.http import HttpResponsexxx
类型作用状态码HttpResponseRedirect重定向302HttpResponseNotModified未修改304HttpResponseBadRequest错误请求400HttpResponseNotFound没有对应的资源404HttpResponseForbidden请求被禁止403HttpResponseServerError服务器错误500例
def test_request(request): print( !path info is ,request.path_info) print( !method is ,request.method) print( !querystring is ,request.GET) print( !full path is ,request.get_full_path()) return HttpResponseRedirect( /page/1 )
当访问 http://localhost/test_request 时 会跳转到 http://localhost/page/1
GET和POST请求无论是GET还是POST 通以都由视图函数接受请求 通过判断 request.method 区分具体的请求动作
if request.method GET : 处理GET请求时的业务逻辑 elif request.method POST : 处理POST请求的业务逻辑 else: 其他请求业务逻辑GET处理
GET请求动作 一般用于向服务器获取数据
能够产生GET请求的场景
浏览器地址栏中输入URL 回车后 a href 地址?参数 值 参数 值 from表单中的method为GET方法
request.GET[ 参数名 ] .GET是一个 QueryDict
request.GET.get( 参数名 , 默认值 ) 返回某个参数的值 若此参数不存在 则返回一个默认值
request.GET.getlist( 参数名 ) 获取某个参数的所有值 返回值是一个列表
POST处理 POST 一般用于向服务器提交大量/隐私数据客户端通过**表单(form)**等POST请求将数据传递给服务器端服务器端接收参数
通过 request.method 来判断请求是否是 POST
使用POST方式接收客户端数据
取消CSRF验证 否则Django会拒绝客户端发来的POST请求 报错403
settings.py 中 取消CSRF验证
Django处理 GET 请求
✔️查询字符串 - 少量数据传递 切记不能传输敏感数据
Django处理 POST 请求
✔️ 专用于浏览器提交数据



