1.HttpRequest对象
Django里有一个HttpRequest对象,经常会在视图函数出现,而且是以第一个参数(即request)传入
HttpRequest对象有很多属性和方法,我们可以看一下比较常用的
属性 | 说明 |
---|---|
HttpRequest.method | 请求的方法,例如GET、POST |
HttpRequest.GET | GET请求的数据(QueryDict),可通过get()取出 |
HttpRequest.POST | POST请求的数据,同上 |
HttpRequest.META | 请求的头部信息 |
HttpRequest.body | 请求体,会保留最原始的二进制数据,一般是非表单数据,表单数据可以通过request.POST.get()提取 |
HttpRequest.scheme | 请求的协议类型,比如http、https |
HttpRequest.path | 请求的路径,不包括协议、域名和查询参数 |
HttpRequest.encoding | 提交的表单的编码 |
HttpRequest.FILES | 上传文件的字典对象 |
HttpRequest.COOKIES | 包含所有cookies的标准Python字典对象 |
HttpRequest.session | 代表会话,唯一可读写的属性 |
HttpRequest.user | 用户,未登录用户是AnonymousUser |
方法 | 说明 |
---|---|
HttpRequest.has_key() | 查看请求中是否有某个参数 |
HttpRequest.is_secure() | 是否安全,即是否HTTPS协议 |
HttpRequest.get_full_path() | 获取全路径,不包括域名,包括查询参数 |
HttpRequest.get_host() | 获取客户端主机地址 |
HttpRequest.get_port() | 获取客户端的端口 |
HttpRequest.is_ajax() | 是否ajax请求 |
2.QueryDict对象
QueryDict是一个类似于字典的对象,实际上它就是继承字典的,与字典不同的是,QueryDict同一个键可以存储多个值
在Django的视图函数中request.GET或request.POST返回的就是一个QueryDict对象
QueryDict对象是不可以更改的,若要获得可变的版本,需要使用调用copy()方法
方法 | 说明 |
---|---|
QueryDict.get() | 获取键对应的值,如果key对应多个value,get()返回最后一个 |
QueryDict.copy() | 返回一个深拷贝的对象 |
QueryDict.keys() | 返回所有键 |
QueryDict.values() | 返回所有值,若值重复,则返回最后一个值 |
QueryDict.items() | 返回所有键值,若一个键有重复值,只返回最后一个值 |
QueryDict.lists() | 返回键以及该键对应的所有值 |