django中级 --- HttpRequest

说明

django中每个views函数的第一个参数为HttpRequest,每一个请求都会生成一个 HttpRequest 对象,django会将这个对象自动传递给响应的视图函数,一般视图函数约定俗成地使用 request 参数承接这个对象。

HttpRequest对象常用属性

属性 说明
request.scheme 请求协议,一般为http或https
request.path 字符串,为请求的URI
request.method 表示请求方法,POST,GET等
request.encoding 表示提交数据的编码,默认utf-8。可修改该属性
request.GET 一个类似于字典的对象,包含 HTTP GET 的所有参数
request.POST 一个类似于字典的对象,如果请求中包含表单数据,则将这些数据封装成 QueryDict对象
request.REQUEST 一个类似于字典的对象,它首先搜索POST,然后搜索GET,主要是为了方便
request.COOKIES 一个标准的Python 字典,包含所有的cookie。键和值都为字符串
request.FILES 一个类似于字典的对象,包含所有的上传文件信息。FILES 中的每个键为 中的name,值则为对应的数据。注意,FILES 只有在请求的方法为POST 且提交的
带有enctype="multipart/form-data" 的情况下才会包含数据。否则,FILES 将为一个空的类似于字典的对象
request.META 一个标准的Python 字典,包含所有的HTTP 首部。具体的头部信息取决于客户端和服务器
request.user 一个 AUTH_USER_MODEL 类型的对象,表示当前登录的用户
request.session 一个既可读又可写的类似于字典的对象,表示当前的会话

HttpRequest常用方法

方法 说明
request.get_host() 根据从HTTP_X_FORWARDED_HOST(如果打开 USE_X_FORWARDED_HOST,默认为False)和 HTTP_HOST 头部信息返回请求的原始主机。如果这两个头部没有提供相应的值,则使用SERVER_NAME 和SERVER_PORT
request.get_full_path() 返回 path,如果可以将加上查询字符串,如:/abc?name=aaa
request.is_secure() 如果请求时是安全的,则返回True;即请求通是过 HTTPS 发起的
request.is_ajax() 如果请求是通过XMLHttpRequest 发起的,则返回True,方法是检查 HTTP_X_REQUESTED_WITH 相应的首部是否是字符串'XMLHttpRequest'

你可能感兴趣的:(django中级 --- HttpRequest)