首页 技术 正文
技术 2022年11月15日
0 收藏 742 点赞 2,896 浏览 2791 个字

        运维开发笔记整理-Request对象与HttpResponse对象

                                   作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.request对象

1>.什么是request

  首先,我们得知道request对象是有django创建的,并不是我们自己创建的,通过url文件监听相应的路径,如果客户端访问有请求到了该路径,就会将参数自动传递到request对象里面,它默认是一个WSGIRequest对象,我们可以通过python的dir方法看到request有那些属性,如下图所示:

运维开发笔记整理-Request对象与Response对象

2>.request的属性和方法使用案例

  我们可以在views.py视图函数中调试request的相关属性参数,做如下修改:

#!/usr/bin/env python
#_*_conding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/from django.http import HttpResponsedef index(request):
print("请求协议:",request.scheme)
print("请求体:",request.body)
print("请求路径",request.path)
print("请求方法:",request.method)
print("请求的字符集",request.encoding)
print("请求的GET属性:",request.GET)
print("请求的POST属性:",request.POST)
print("请求的META属性:",request.META)
return HttpResponse("尹正杰到此一游!")

  我们启动项目后,访问相应的路径,会在后端查看到相应的request信息,如下图所示:

运维开发笔记整理-Request对象与Response对象

  除了上面我们可以查看request的属性相关参数,我们还可以查看方法相关的参数,实例代码如下:

#!/usr/bin/env python
#_*_conding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/from django.http import HttpResponsedef index(request):
print("获取主机信息:",request.get_host())
print("获取端口信息:",request.get_port())
print("获取路径信息:",request.get_full_path())
print("是否是安全的:",request.is_secure())
print("是否是ajax:",request.is_ajax())
return HttpResponse("尹正杰到此一游!")

  启动项目后,我们在浏览器访问:http://172.30.1.200:8000/dashboard/,会发现有以下输出:

运维开发笔记整理-Request对象与Response对象

3>.更多关于request对象的资料

  详情请参考官方文档:https://docs.djangoproject.com/en/1.11/ref/request-response/

<!–
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.5px Helvetica; color: #929292}
–>

二.HttpResponse对象

1>.什么是HttpResponse

  HttpResponse的功能就是传递一个字符串作为页面的内容到HttpRespnse构造函数。 运维开发笔记整理-Request对象与Response对象

2>.HttpResponse的属性和方法

  上图我们传递一个字符串作为页面的内容到HttpResponse构造函数,这是一种实例化方式,其实HttpResponse有很多属性,我们从中可以获取到相应的信息,如下所示:

#!/usr/bin/env python
#_*_conding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/from django.http import HttpResponsedef index(request):
# res1 = HttpResponse("尹正杰到此一游!")
'''
上面的res1传递一个字符串作为页面的内容到HttpResponse构造函数。这是一种实例化方式,还有一种实例化方式,就是给他传递一个content_type属性。
content_type:
用来指定返回内容的数据类型,默认我们不指定,如上面的res1所示,content_type其实默认就是text/html。其实我们可以指定
的类型不仅仅包括文本的,还可以指定为json的,或者是返回图片类型等等。
'''
res2 = HttpResponse("尹正杰到此一游!", content_type="text/plain",charset="gbk")
print("响应的内容是:",res2.content)
print("响应的字符集是:",res2.charset)
print("响应的状态码是:",res2.status_code)
print("响应的原因短语是:",res2.reason_phrase)
return res2

运维开发笔记整理-Request对象与Response对象

  其实HttpResponse除了如上图所示,可以传递2个参数外,其实它还支持其他参数,具体的我们可以看其对应的方法:

HttpResponse.__init__(content=”, content_type=None, status=200, reason=None, charset=None)

  其实上面的一行代码咱们可以查看HttpResponse类,它是继承HttpResponseBase,如下图所示:

运维开发笔记整理-Request对象与Response对象

  我们查看HttpResponseBase类的init方法,如下图所示:

运维开发笔记整理-Request对象与Response对象

3>.更多关于response的资料

  详情请参考:https://docs.djangoproject.com/en/1.11/ref/request-response/.

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,956
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,480
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,327
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,110
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,741
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,776