# Request对象
* 服务器接收到HTTP协议的请求后,会根据报文创建HttpRequest对象
* 视图函数的第一个参数是HttpRequest对象
* 在django.http模板中定义了HttpRequest对象的API
## 属性
* 下面除非特别说明,属性都是只读的
* path:一个字符串,请求的页面的完整路径,不包含域名
* method:一个字符串,表示请求使用的HTTP方法,常用值包括:"GET"、“POST”
* encoding:一个字符串,表示提交的数据的编码方式
* 如果为None则表示使用浏览器的默认设置,一般为utf-8
* 这个属性是可写的,可以通过修改它来修改访问表单数据使用的编码,接下来对属性的任何访问将使用新的encoding值
* GET:一个类似于字典的对象,包含get请求方式的所有参数
* POST:一个类似于字典的对象,包含post请求方式的所有参数
* FILES:一个类似于字典的对象,包含所有的上传文件
* COOKIES:一个标准的python字典,包含所有的cookie,键和值都为字符串
* session:一个即可读又可写的类似于字典的对象,表示当前的会话,只有当Django启用会话的支持时才可用,详见内容"状态保持"
```text
配置路由urls.py
url(r'^attribles/$',views.attribles),
views.py 视图
def attribles(request):
print(request.path)
print(request.method)
print(request.encoding)
print(request.GET)
print(request.POST)
print(request.FILES)
print(request.COOKIES)
print(request.session)
return HttpResponse("attribules")
"""
/attribles/
GET
None
<QueryDict: {}>
<QueryDict: {}>
<MultiValueDict: {}>
{'csrftoken': 'qI8DT2TLUxr0Hm1B1WkmtGhhMgzU8BAgkNSJ0adLpH2m1ZtUCR2UPboln4APK54B', 'sessionid': 'o05tno2zmm5gtietf672
d6b368qvasn4'}
<django.contrib.sessions.backends.db.SessionStore object at 0x00000288BCBFF160>
"""
```
## 方法
* is\_ajax\(\):如果请求是通过XMLHttpRequest发起的,则返回True