Django 的HttpRequest对象与HttpResponse对象

简介:

Django 的HttpRequest对象与HttpResponse对象

http://www.th7.cn/d/file/p/2013/05/13/cc3a7576222d38b5bee85018d2378668.jpgimage

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,以字符串的形式传递给页面,下面构造函数:
http://www.th7.cn/d/file/p/2013/05/13/85a4c25e02ff6eae73f53438398897ef.jpgimage

2、设置Hearders

可以想字典一样添加和删除头信息

http://www.th7.cn/d/file/p/2013/05/13/b2084bf3e68fda7098e2ed3733bee371.jpgimage
3、HttpResponse子类

参考资料

对一些404、500等错误页面的处理。

目录
相关文章
|
1月前
|
SQL Java 数据库
Django学习三:views业务层中通过models对实体对象进行的增、删、改、查操作。
这篇文章是关于如何使用Django框架的ORM系统在视图(views)层面进行数据库的增、删、改、查操作的教程。
18 0
Django学习三:views业务层中通过models对实体对象进行的增、删、改、查操作。
|
5月前
|
JSON 数据库 数据格式
使用 Django Q 对象构建复杂查询条件
通过本文示例,我们展示了如何使用Django的Q对象来构建复杂的查询条件,以及如何实现分页功能。Q对象的强大之处在于它能够轻松地组合多个查询条件,支持“与”、“或”关系,极大地提高了查询的灵活性和可读性。希望本文对你在实际项目中使用Django ORM构建复杂查询有所帮助。
|
JSON 缓存 程序员
16 Django视图 - HttpResponse对象
16 Django视图 - HttpResponse对象
33 0
|
中间件 API Python
15 Django视图 - HttpReqeust对象
15 Django视图 - HttpReqeust对象
41 0
|
JSON 数据格式 Python
13-Django-基础篇-HttpResponse对象
13-Django-基础篇-HttpResponse对象
|
JSON 数据格式 Python
12-Django-基础篇-HttpRequest对象
12-Django-基础篇-HttpRequest对象
|
数据库 Python
Django ORM F对象和Q对象查询
F对象用于操作数据库中某一列的值,它可以在没有实际访问数据库获取数据值的情况下对字段的值进行引用 使用F对象之前需要将它引入当前的环境中:
150 0
Django ORM F对象和Q对象查询
|
Python
Python编程:Django中的Request对象常用属性
Python编程:Django中的Request对象常用属性
150 0
|
JSON 缓存 程序员
Django Response对象3.4
Django Response对象3.4
103 0
Django Response对象3.4
|
17天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
103 45