Django进修笔记(7):HttpRequest对象与HttpResponse对象
添加时间:2013-5-14 点击量:
一、关于request、response
这两个是好哥们,老是形影不离。它们可以用如下图默示:
二、HttpRequest对象
默示来自某客户端的一个零丁的HTTP恳求。HttpRequest对象是Django主动创建的。
它的属性有很多,可以参考DjangoBook,斗劲常用的有以下几个:
1、method:恳求办法,如:
1: if request.method == "POST":
2: ......
3: elif request.mehtod =="GET":
4: ......
2、类字典对象GET、POST
3、COOKIES,字典情势
4、user:
一个django.contrib.auth.models.User 对象默示当前登录用户,若当前用户尚未登录,user会设为django.contrib.auth.models.AnonymousUser的一个实例
可以将它们与is_authenticated()区分隔:
1: if request.user.is_authenticated():
2: ....
3: else:
4: ....
5、session、字典情势
6、request.META
是一个Python字典,包含了所有本次HTTP恳求的Header信息,比如用户IP地址和用户Agent(凡是是浏览器的名称和版本号)。 重视,Header信息的完全列表取决于用户所发送的Header信息和办事器端设置的Header信息。 这个字典中几个常见的键值有:
HTTP_REFERRER:进站前链接网页,若是有的话
HTTP_USER_AGENT,用户浏览器的user-agent字符串,若是有的话。 例如: "Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.8.1.17) Gecko/20080829 Firefox/2.0.0.17" .
REMOTE_ADDR 客户端IP,如:"12.345.67.89" 。(若是申请是经过办事器的话,那么它可能是以逗号分别的多个IP地址,如:"12.345.67.89,23.456.78.90" 。)
1: def request_test(request):
2: context={}
3: try:
4: # http_referer=request.META[HTTP_REFERRER]
5: http_user_agent=request.META[HTTP_USER_AGENT]
6: remote_addr=request.META[REMOTE_ADDR]
7: return HttpResponse(【http_user_agent】:%s,【remote_addr】=%s %(http_user_agent,remote_addr))
8: except Exception,e:
9: return HttpResponse("Error:%s" %e)
重视:GET、POST属性都是django.http.QueryDict的实例,在DjangoBook可具体懂得。
三、Response对象
该对象是本身创建的,在每一个视图都要实例化它,处理惩罚和返回一个HttpResponse对象
1、机关
HttpResponse类存在于django.http.HttpResponse,以字符串的情势传递给页面,下面机关函数:
2、设置Hearders
可以想字典一样添加和删除头信息
3、HttpResponse子类
参考材料
对一些404、500等错误页面的处理惩罚。
彼此相爱,却不要让爱成了束缚:不如让它成为涌动的大海,两岸乃是你们的灵魂。互斟满杯,却不要同饮一杯。相赠面包,却不要共食一个。一起歌舞欢喜,却依然各自独立,相互交心,却不是让对方收藏。因为唯有生命之手,方能收容你们的心。站在一起却不要过于靠近。—— 纪伯伦《先知》
一、关于request、response
这两个是好哥们,老是形影不离。它们可以用如下图默示:
二、HttpRequest对象
默示来自某客户端的一个零丁的HTTP恳求。HttpRequest对象是Django主动创建的。
它的属性有很多,可以参考DjangoBook,斗劲常用的有以下几个:
1、method:恳求办法,如:
1: if request.method == "POST":
2: ......
3: elif request.mehtod =="GET":
4: ......
2、类字典对象GET、POST
3、COOKIES,字典情势
4、user:
一个django.contrib.auth.models.User 对象默示当前登录用户,若当前用户尚未登录,user会设为django.contrib.auth.models.AnonymousUser的一个实例
可以将它们与is_authenticated()区分隔:
1: if request.user.is_authenticated():
2: ....
3: else:
4: ....
5、session、字典情势
6、request.META
是一个Python字典,包含了所有本次HTTP恳求的Header信息,比如用户IP地址和用户Agent(凡是是浏览器的名称和版本号)。 重视,Header信息的完全列表取决于用户所发送的Header信息和办事器端设置的Header信息。 这个字典中几个常见的键值有:
HTTP_REFERRER:进站前链接网页,若是有的话
HTTP_USER_AGENT,用户浏览器的user-agent字符串,若是有的话。 例如: "Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.8.1.17) Gecko/20080829 Firefox/2.0.0.17" .
REMOTE_ADDR 客户端IP,如:"12.345.67.89" 。(若是申请是经过办事器的话,那么它可能是以逗号分别的多个IP地址,如:"12.345.67.89,23.456.78.90" 。)
1: def request_test(request):
2: context={}
3: try:
4: # http_referer=request.META[HTTP_REFERRER]
5: http_user_agent=request.META[HTTP_USER_AGENT]
6: remote_addr=request.META[REMOTE_ADDR]
7: return HttpResponse(【http_user_agent】:%s,【remote_addr】=%s %(http_user_agent,remote_addr))
8: except Exception,e:
9: return HttpResponse("Error:%s" %e)
重视:GET、POST属性都是django.http.QueryDict的实例,在DjangoBook可具体懂得。
三、Response对象
该对象是本身创建的,在每一个视图都要实例化它,处理惩罚和返回一个HttpResponse对象
1、机关
HttpResponse类存在于django.http.HttpResponse,以字符串的情势传递给页面,下面机关函数:
2、设置Hearders
可以想字典一样添加和删除头信息
3、HttpResponse子类
参考材料
对一些404、500等错误页面的处理惩罚。
彼此相爱,却不要让爱成了束缚:不如让它成为涌动的大海,两岸乃是你们的灵魂。互斟满杯,却不要同饮一杯。相赠面包,却不要共食一个。一起歌舞欢喜,却依然各自独立,相互交心,却不是让对方收藏。因为唯有生命之手,方能收容你们的心。站在一起却不要过于靠近。—— 纪伯伦《先知》