Django中的Request和Response对象

django通过这两个对象在系统间传递状态。

当请求一个页面时,Django会建立一个包含请求元数据的 HttpRequest 对象。 当Django 加载对应的视图时,HttpRequest 对象将作为视图函数的第一个参数。每个视图会返回一个HttpResponse 对象。

本文档对HttpRequestHttpResponse 对象的API 进行说明,这些API 定义在jango.http 模块中。

HttpRequest

常用的属性:

HttpRequest.scheme

一个字符串,表示请求的方案(通常是http 或https)

HttpRequest.body

一个字节字符串,表示原始HTTP 请求的正文。它对于处理非HTML 形式的数据非常有用:二进制图像、XML等。 如果要处理常规的表单数据,应该使用HttpRequest.POST。

HttpRequest.path

一个字符串,表示请求的页面的完整路径,不包含域名。例如"/music/bands/the_beatles/"

HttpRequest.path_info

在某些Web 服务器配置下,主机名后的URL 部分被分成脚本前缀部分和路径信息部分。path_info 属性将始终包含路径信息部分,不论使用的Web 服务器是什么。使用它代替path 可以让代码在测试和开发环境中更容易地切换。

例如,如果应用的WSGIScriptAlias 设置为"/minfo",那么当path"/minfo/music/bands/the_beatles/"path_info 将是"/music/bands/the_beatles/"

HttpRequest.method

一个字符串,表示请求使用的HTTP 方法。必须使用大写。例如:

1
2
3
4
if request.method == 'GET':
do_something()
elif request.method == 'POST':
do_something_else()

HttpRequest.encoding

一个字符串,表示提交的数据的编码方式(如果为None 则表示使用DEFAULT_CHARSET 设置)。这个属性是可写的,你可以修改它来修改访问表单数据使用的编码。接下来对属性的任何访问(例如从GETPOST 中读取数据)将使用新的encoding 值。如果你知道表单数据的编码不在DEFAULT_CHARSET 中,则使用它。

HttpRequest.content_type(django 1.10+)

HttpRequest.content_params(django 1.10+)

HttpRequest.GET

一个类似于字典的对象,包含HTTP GET 的所有参数。

HttpRequest.POST

HttpRequest.COOKIES

HttpRequest.FILES

HttpRequest.META

HttpRequest.resolver_match

Attributes set by application code(通过应用程序代码设置的属性)

HttpRequest.current_app

HttpRequest.urlconf

Attributes set by middleware(通过中间件设置的属性)

HttpRequest.session

HttpRequest.site

HttpRequest.user

方法