Django请求和响应对象
Django 使用请求和响应对象在系统中传递状态。
当一个页面被请求时,Django 会创建一个 HttpRequest 对象,这个对象包含了请求的元数据。然后,Django 加载相应的视图,将 HttpRequest 作为视图函数的第一个参数。每个视图负责返回一个 HttpResponse 对象。
HttpRequest对象
下面介绍HttpRequest对象常用的属性和方法。
HttpRequest常用属性
1.HttpRequest.body
原始的 HTTP 请求体作为一个字节字符串。这对于以不同方式处理非常规 HTML 表单的数据很有用:二进制图像,XML 有效负载等。对于处理传统的表单数据,使用 HttpRequest.POST
2.HttpRequest.method
代表请求中使用的 HTTP 方法的字符串,一定是大写字母。
3.HttpRequest.GET
一个类似字典的对象,包含所有给定的 HTTP GET 参数。
4.HttpRequest.POST
一个类似字典的对象,包含所有给定的 HTTP POST 参数,前提是请求包含表单数据。如果你需要访问请求中发布的原始或非表单数据,可以通过 HttpRequest.body 属性来访问。
以上的4个属性是我们最常用的HttpRequest属性。结合实际,我们可能写出的代码如下:
if request.method == "POST": # POST请求方法 try: data = json.loads(request.body) # 获取POST请求携带的非表单数据(JSON数据) except json.JSONDecodeError: return JsonResponse({"status": "1", "msg": "数据格式错误"}) # 表单数据 # keys = request.POST.get("keys") # 如果POST携带的是表单数据,可以这样获取。 elif request.method == "GET": keys = request.GET.get("keys") # 获取get请求携带的参数 return JsonResponse({"status": "0", "msg": "请求成功"}) else: return JsonResponse({"status": "0", "msg": "请求方法错误"})
5.HttpRequest.COOKIES
一个包含所有 cookies 的字典。键和值是字符串。
6.HttpRequest.FILES
一个类似字典的对象,包含所有上传的文件。FILES 中的每个键是 中的 name。FILES 中的每个值是一个 UploadedFile。
FILES 只有在请求方法是 POST,并且发布请求的