HTTP Request和Response
HttpRequest对象
一、属性
Request.path 不包含域名
Request.path_info 不包含域名和APP路径
Request.method
Request.GET
Request.POST
Request.COOKIES 一个标准的Python 字典,包含所有的cookie,键和值都为字符串。
Request.session 一个既可读又可写的类似于字典的对象,表示当前的会话。只有当Django启用SessionMiddleware中间件时才可用。
Request.FILE 一个类似于字典的对象,包含所有的上传文件。FILES中的每个键为Input中的name。
Request.META 一个标准的Python 字典,包含所有的HTTP 头部。
Request.user 一个AUTH_USER_MODEL类型的对象,表示当前登录的用户。user只有当Django 启用AuthenticationMiddleware中间件时才可用。
如果用户当前没有登录,user将设置为django.contrib.auth.models.AnonymousUser的一个实例。你可以通过is_authenticated()区分它们:

if request.user.is_authenticated(): # Do something for logged-in users. else: # Do something for anonymous users.
Request.urlconf
二、方法
Request.get_host()
Request.get_full_path() 返回path, 如果可以将加上查询字符串。
Request.build_absolute_uri(location) 返回location绝对URI。
Request.is_secure() 判断是否是HTTPS请求。
Request.is_ajax() 判断是否是XMLHttpRequest请求。
QueryDict对象
在HttpRequest对象中,GET和POST属性是django.http.QueryDict的实例,它是一个自定义的类似字典的类,用来处理同一个键带有多个值。这个类的需求来自某些HTML 表单元素传递多个值给同一个键,<select multiple>是一个显著的例子。
方法:
QueryDict.get(key, default)
QueryDict.setdefault(key, default)
QueryDict.update(other_dict)
QueryDict.items()
QueryDict.iteritems()
QueryDict.iterlists()
QueryDict.values()
QueryDict.itervalues()
QueryDict.copy()
QueryDict.getlist(key, default)
QueryDict.setlist(key, list)
QueryDict.appendlist(key, item)
QueryDict.setlistdefault(key, default_list)
QueryDict.lists()
QueryDict.pop(key)
QueryDict.pipitem()
QueryDict.dict()
HttpResponse对象
与由Django自动创建的HttpRequest对象相比,HttpResponse对象由程序员创建.你创建的每个视图负责初始化实例,填充并返回一个HttpResponse.
HttpResponse类是在django.http模块中定义的。