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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux暴力破解工具

    对于Linux操作系统来说,一般通过VNC、Teamviewer和SSH等工具来进行远程管理,SSH是SecureShell的缩写,由IETF的网络小组(NetworkWorkingGroup)所制定;SSH 为建立在应用层基础上的安全协议。 SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信…

    2022年4月7日
    78
  • APP弱网测试[通俗易懂]

    APP弱网测试[通俗易懂]APP弱网测试 一、网络测试的一般流程step1:首先要考虑网络正常的情况① 各个模块的功能正常可用② 页面元素/数据显示正常step2:其次要考虑无网络的情况① APP各个功能在无网络情况下是否可用② APP各个页面之间切换是否正常③ 发送网络请求时是否会导致闪退、卡死等异常情况④ APP各个页面是否显示完整美观,未刷新的页…

    2022年4月19日
    36
  • objectmapper json转对象_篆体字转换器在线转换

    objectmapper json转对象_篆体字转换器在线转换JSONObject转换为Mapimportcom.alibaba.fastjson.TypeReference;importcom.alibaba.fastjson.JSONObject;JSONObjectobj=newJSONObject();{obj.put(“key1″,”value1”);obj.put(“key2″,”value2”);obj.put(“key3″,”value3”);}Map<String,String>params=

    2022年10月5日
    4
  • VB.Net程序设计:分页控件

    VB.Net程序设计:分页控件参考网络上大牛的文章,特别感谢伍华聪,分享了许多分页的文章。无论什么类型的数据库,数据量大了就需要分页,数据量大了,就要考虑分页的效率等。效率在此不做分析。分页控件支持不同类型数据库如:MSSQLServerMySQLSQLiteAccess等,只要有分页SQL语句,即可根据vb.net教程分页信息,取出相应的数据内容,再将数据内容绑定或者加工显示到UI上。分页控件需要做的事:显示页面信息。可以随意跳转到指定的页。根据页面信息返回具体的SQL分页语句。返回取出的数据内容。分页控件

    2022年9月1日
    4
  • 开源游戏引擎哪家强?八款知名引擎资料够你忙[通俗易懂]

    开源游戏引擎哪家强?八款知名引擎资料够你忙[通俗易懂]游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。本文介绍了几款常见的开源游戏引擎,并附上相关资料。游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始。以下介绍了几款常见的开源游戏引擎:OGRE

    2022年10月21日
    3
  • ssm框架过时了吗_mybatis分页插件

    ssm框架过时了吗_mybatis分页插件日志如果一个数据库操作,出现了异常,我们需要排错,日志就是最好的助手曾经:sout,debug现在:日志工厂掌握STDOUT_LOGGINGLOG4Jlog4j什么是Log4j?我们可以控制日志信息输送的目的地是控制台我们也可以控制每一条日志的输出格式通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。分页减少数据量selsect * from user limit startIndex,pageS

    2022年8月8日
    4

发表回复

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

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