django通过这两个对象在系统间传递状态。
当请求一个页面时,Django会建立一个包含请求元数据的 HttpRequest 对象。 当Django 加载对应的视图时,HttpRequest 对象将作为视图函数的第一个参数。每个视图会返回一个HttpResponse 对象。
本文档对HttpRequest 和HttpResponse 对象的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 方法。必须使用大写。例如:
HttpRequest.encoding
一个字符串,表示提交的数据的编码方式(如果为None 则表示使用DEFAULT_CHARSET 设置)。这个属性是可写的,你可以修改它来修改访问表单数据使用的编码。接下来对属性的任何访问(例如从GET或 POST 中读取数据)将使用新的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
方法