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("...")

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 【C++深陷】之“decltype”[通俗易懂]

    【C++深陷】之“decltype”[通俗易懂]decltype被称作类型说明符,它的作用是选择并返回操作数的数据类型。随着程序越来越复杂,有时候根本搞不清到底需要什么类型,不得不回过头去从上下文进行推测。decltype可以作用于变量,也可以作用于表达式。

  • STM32看门狗总结

    STM32看门狗总结转自:http://www.openedv.com/thread-56260-1-1.htmlSTM32看门狗总结调原子哥的开发板一年多,基本上能用,但是对于STM32某些基本外设的工作机理还不甚明了。借此暑假的机会对各个外设的功能做一个简短的总结,在提高自己基础知识的同时,也给其他同学提供一些参考。先来看门狗部分的内容。看门狗部分内容当中较难理解的是窗口看门狗

  • Linux环境变量文件介绍[通俗易懂]

    Linux环境变量文件介绍[通俗易懂]在Linux系统中,环境变量按照其作用范围不同大致可以分为系统级环境变量和用户级环境变量。      系统级环境变量:每一个登录到系统的用户都能够读取到系统级的环境变量      用户级环境变量:每一个登录到系统的用户只能够读取属于自己的用户级的环境变量 自然而然地,环境变量的配置文件也相应的被分成了系统级和用户级两种。系统级/etc/profile在…

  • Spring集成MyBatis

    Spring集成MyBatis回忆MyBatis定义表user定义pojo实体类User在dao层定义UserMapper接口接口对应的Mapper映射文件在Dao接口的包中创建MyBatis的映射文件UserMapper,命名与接口名相同,本例为UserMapper.xml。mapper中的namespace取值也为Dao接口的全限定性名。定义MyBatis主配置文件在resources下定义MyBatis的主配置文件,命名为mybatis-config.xml。<?xml

  • shell if 小数 比较

    shell if 小数 比较shell的[]对于数值的判断都是基于整数的,如果碰到小数就无能为力了。google了一把发现用awk的牛人多,不过发现一个兄弟的更加好。if[`expr$a\>$b`-eq0];thenecho$bisbiggerelseecho$aisbiggerfi通过ex…

  • java默认上传文件大小限制_文件大小超过云附件总限制

    java默认上传文件大小限制_文件大小超过云附件总限制win系统下解决ASP上传文件大小限制200K_电脑基础知识_IT/计算机_专业资料。win系统下解决ASP上传文件大小限制200K解决ASP上传文件大小限制200Kwin2003系统下的……介绍上传//新建一个SmartUpload对象SmartUploadsu=newSmartUpload();//上传初始化su.initialize(pageCo…

发表回复

您的电子邮箱地址不会被公开。

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