美文网首页
Django HttpRequest对象

Django HttpRequest对象

作者: 唐九十九藏 | 来源:发表于2018-08-28 22:42 被阅读0次

当请求页面时,Django会创建一个HttpRequest包含有关请求的元数据的对象。然后Django加载适当的视图,将HttpRequest第一个参数传递给view函数。


HttpRequest.scheme

表示请求方案(http或https 通常)的字符串。


HttpRequest.body

原始的HTTP请求主体,类型是字节字符串,这对于以不同于传统HTML表单的方式来处理Body数据时将非常有用:二进制映像,XML有效负载等。

如果是为了处理传统的表单数据,请使用: HttpRequest.POST 下面有讲。


HttpRequest.path

表示所请求页面的完整路径的字符串

例: "/music/bands/the_beatles/"


HttpRequest.path_info

在某些Web服务器配置下,主机名后面的URL部分被分成脚本前缀部分和路径信息部分。path_info无论使用何种Web服务器,该属性始终包含路径的路径信息部分。使用它可以使代码更容易在测试服务器和部署服务器之间进行移植

例如,如果WSGIScriptAlias设置为 "/minfo",

那么path:/minfo/music/bands/the_beatles/

path_info:/music/bands/the_beatles/


HttpRequest.method

表示请求中使用的HTTP方法的字符串。该值是大写的,如:GET,POST等


HttpRequest.encoding

表示用于解码提交的表单数据的编码的字符串,如果为none,则使用DEFAULT_CHARSET(值为:utf-8),您可以修改此属性以更改访问表单数据时使用的编码方式,任何后续属性访问(例如从GET或读取POST)都将使用新encoding值


HttpRequest.content_type

表示请求的MIME类型的字符串,从CONTENT_TYPE标头解析 。


HttpRequest.content_params

CONTENT_TYPE 字段中包含的键/值参数字典。


HttpRequest.GET

类似于字典的对象,包含所有给定的HTTP GET参数。请参阅以下 QueryDict文档


HttpRequest.POST

类似字典的对象,包含所有给定的HTTP POST参数,前提是请求包含表单数据。请参阅以下QueryDict文档。如果您需要访问请求中发布的原始或非表单数据,请通过该HttpRequest.body属性访问它 。


HttpRequest.COOKIES

包含所有cookie的字典。键和值是字符串。


HttpRequest.FILES

包含所有上传文件的类字典对象。


HttpRequest.META

包含所有可用HTTP标头的字典。可用的标头取决于客户端和服务器,以下是一些示例

CONTENT_LENGTH - 请求正文的长度(作为字符串)。

CONTENT_TYPE - 请求正文的MIME类型。

HTTP_ACCEPT - 响应的可接受内容类型。

HTTP_ACCEPT_ENCODING - 可接受的响应编码。

HTTP_ACCEPT_LANGUAGE - 响应的可接受语言。

HTTP_HOST - 客户端发送的HTTP主机头。

HTTP_REFERER - 引用页面,如果有的话。

HTTP_USER_AGENT - 客户端的用户代理字符串。

QUERY_STRING - 查询字符串,作为单个(未解析的)字符串。

REMOTE_ADDR - 客户端的IP地址。

REMOTE_HOST - 客户端的主机名。

REMOTE_USER - Web服务器验证的用户(如果有)。

REQUEST_METHOD- 一个字符串,如"GET"或"POST"。

SERVER_NAME - 服务器的主机名。

SERVER_PORT - 服务器的端口(作为字符串)。

除了CONTENT_LENGTH和之外CONTENT_TYPE,如上所述,请求中的任何HTTP头都将转换为META键,方法是将所有字符转换为大写,用下划线替换任何连字符并HTTP_在名称中添加前缀。因此,例如,调用的标头X-Bender将映射到META密钥 HTTP_X_BENDER。


HttpRequest.resolver_match

ResolverMatch表示已解析URL 的实例。此属性仅在URL解析发生后设置,这意味着它在所有视图中都可用,但在URL解析发生之前执行的中间件中不可用(process_view()尽管可以使用它 )。


HttpRequest.get_host()

例: "127.0.0.1:8000"


HttpRequest.get_port()


HttpRequest.get_full_path()

path如果适用,返回加上附加的查询字符串。

例: "/music/bands/the_beatles/?print=true"


HttpRequest.build_absolute_uri

返回绝对URI形式location。如果未提供位置,则位置将设置为request.get_full_path()。

如果该位置已经是绝对URI,则不会更改。否则,绝对URI是使用此请求中可用的服务器变量构建的。

例: "https://example.com/music/bands/the_beatles/?print=true"


HttpRequest.get_signed_cookie

返回已签名cookie的cookie值


HttpRequest.is_secure()

True如果请求是安全的,则返回; 也就是说,如果它是用HTTPS制作的。


HttpRequest.is_ajax()

返回True如果请求被经由制成XMLHttpRequest


HttpRequest.read(size = None

HttpRequest.readline()

HttpRequest.readlines()

HttpRequest.__iter__()

实现类似文件的接口以从HttpRequest实例读取的方法 。这使得以流式方式消费传入请求成为可能。一个常见的用例是使用迭代解析器处理大型XML有效负载,而无需在内存中构建整个XML树。

![关注公众号来和我互动](https://img.haomeiwen.com/i7131940/4ad1e129053fe85d.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

相关文章

网友评论

      本文标题:Django HttpRequest对象

      本文链接:https://www.haomeiwen.com/subject/yhkcwftx.html