Django之HttpRequest和HttpReponse

当一个web请求链接进来时,django会创建一个HttpRequest对象来封装和保存所有请求相关的信息,并且会根据请求路由载入匹配的试图函数,每个请求的试图函数都会返回一个HttpResponse

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

  当一个web请求链接进来时,django会创建一个HttpRequest对象来封装和保存所有请求相关的信息,并且会根据请求路由载入匹配的试图函数,每个请求的试图函数都会返回一个HttpResponse对象。

  HttpRequest和HttpReponse类都包含在django.http包中

1. HttpRequest类

HttpRequest属性

HttpRequest.scheme 请求协议(http或者https) HttpRequest.body 以字节的方式返回请求体内容;可以通过HttpRequest.POST获取处理后的key和value,也可以通过HttpRequest.read()格式化 HttpRequest.path 返回请求的完整路径,不包括协议和域名 HttpRequest.GET GET请求参数,返回一个queryDict对象 HttpRequest.POST 获取表单提交的数据,如果是通过POST请求提交的其它非表单数据,可以使用HttpRequest.Body获取;使用时可以通过if request.method == "PSOT"来进行预判断 HttpRequest.method 返回请求方式 HttpRequest.environ 返回一个字典,包含所有django运行的环境信息 HttpRequest.content_type 文件格式 HttpRequest.content_params 参数 HttpRequest.COOKIES 返回一个字典,包含浏览器存储的所有cookie HttpRequest.FILES 返回一个MultiValueDict,包含上传的文件 HttpRequest.META 返回一个包含所有请求相关信息的字典(包含Headers),同environ HttpRequest.resolver_match 返回请求处理的url及相关参数 HttpRequest.session 中间件,设置session,一个可读可写的字典对象 HttpRequest.get_host() 获取请求的主机和端口 HttpRequest.get_port() 获取端口 HttpRequest.get_full_path() 返回完整路径,同path HttpRequest.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None) 获取以一个cookie HttpRequest.is_ajax() 判断是否为ajax请求 HttpRequest.is_secure() 判断是否为https请求

2. HttpResponse类

  HttpResponse类用于设置响应头和响应内容,它分为实例化对象、填充设置以及返回三个部分

from django.http import HttpResponse

# 实例化一:
responseOne = HttpResponse("this is a http response")
# 实例化二: responseTwo
= HttpResponse() responseTwo.write("this is another http response") responseTwo.writelines(["this is second line", "this is third line"])
# 设置响应头 responseOne[
"Age"] = 20 responseOne["app"] = "sample" del responseOne["app"] # 设置响应头 responseOne["content_type"] = 'application/vnd.ms-excel' responseOne['Content-Disposition'] = 'attachment; filename="foo.xls"' responseOne.set_cookie("date", "2018-08-21", path="/page", ) # 设置cookie responseOne.delete_cookie("date") # 删除cookie
# 有关对象 print(responseOne) # HttpResponse print(responseOne.items()) # dict_values print(responseOne.cookies) # cookie print(responseOne.content) # 内容(字节) print(responseOne.charset) # 编码 print(responseOne.status_code) # 状态码 print(responseOne.streaming) # 是否为流 print(responseOne.closed) # 是否已发送response print(responseOne.serialize()) # 序列化响应头和相应内容 print(responseOne.serialize_headers()) # 序列化响应头 print(responseOne.
get("Age")) # 获取响应头中的某个键值对 print(responseTwo.getvalue()) # 获取相应的内容 # 将response设置为流数据处理 responseTwo.readable() responseTwo.seekable() responseTwo.write("...")

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120065.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • OSPF原理及配置[通俗易懂]

    OSPF原理及配置[通俗易懂]OSPF原理及配置OSPF的特点OSPF运行原理OSPF区域及路由器身份OSPF区域OSPF身份OSPF邻居建立OSPF更新OSPF数据包类型DR、BDR的选举OSPF状态基本配置演示OSPF原理及配置OSPF(OpenShortestPassFirst,开放最短路径优先协议),是一个最常用的内部网管协议,是一个链路状态协议。OSP…

    2025年7月22日
    2
  • pytest重试_pycharm run运行不了

    pytest重试_pycharm run运行不了安装:pip3installpytest-rerunfailures重新运行所有失败用例要重新运行所有测试失败的用例,请使用–reruns命令行选项,并指定要运行测试的最大次数:$py

    2022年7月31日
    9
  • PHP的安全性问题,你能说得上几个?

    PHP的安全性问题,你能说得上几个?

    2021年10月29日
    52
  • python udp发送数据(http视频传输)

    一、前言最近想写一个实时的视频传输程序,然后上网找了很久没有找到合适的我想用OpenCV进行图像采集,然后用pygame将视频信号转化为可通过UDP网络传输的字符流,然后到达终端后再通过pygame对字符流进行解析,进而将图像显示出来之所以使用UDP传输而不是TCP传输,是因为UDP在视频传输方面拥有快速、无需连接等优点,适合密集传送大量信息的场合但UDP传输有一个问题,…

    2022年4月13日
    172
  • Origin2018安装教程「建议收藏」

    Origin2018安装教程「建议收藏」Origin是由OriginLab公司开发的一个科学绘图、数据分析软件,支持在MicrosoftWindows下运行,它能支持各种各样的2D/3D图形,其数据分析功能很强大,包括统计,信号处理,曲线拟合以及峰值分析。Origin中的曲线拟合是采用基于Levernberg-Marquardt算法(LMA)的非线性最小二乘法拟合,它强大的数据导入功能,支持多种格式的数据,包括ASCII、Excel、NITDM、DIADem、NetCDF、SPC等等。不仅如此,它的图形输出格式也多种多样,例如JPEG,

    2022年6月14日
    74
  • 怎么更改wifi频段_wifi信道和频段怎么设置?「建议收藏」

    怎么更改wifi频段_wifi信道和频段怎么设置?「建议收藏」现在基本上每家都有无线路由器,在家里我们用手机一搜WIFI,就是几个甚至几十个,WIFI信号相互之间会有相互的干扰,当周围的很多无线路由器发射的信号在同一个信道的时候,干扰更为严重,影响到了我们的WiFi性能和网速的体验,甚至出现频繁的掉线情况。无线网络信号在空气中传播频率范围通常是2.4~2.4835GHz,但是这些频段被分为了11或13个信道,我们一般家里用的都有13个信道可以选择。通常情况下…

    2022年10月20日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号