Django之HttpRequest和HttpReponse
当一个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://www.cnblogs.com/xiaobingqianrui/p/9894902.html
Django之HttpRequest和HttpReponse相关推荐
- 【django】HttpRequest对象
回想⼀下,利⽤HTTP协议向服务器传参有⼏种途径? a.提取URL的特定部分,如/film/zhangsan/20/,可以在服务器端的路由中⽤正则表达式截取: b.查询字符串(query string ...
- Django框架——HttpRequest对象
目录 1.URL路径参数 2.QueryDict对象 3.查询字符串Query String 4.请求体 5.请求头 6.其他 1.URL路径参数 (1)位置参数:使用正则分组,与视图中的参数一一对应 ...
- 【django】HttpRequest对象的属性和路由补充
文章目录 一.HttpRequest对象的常用属性 1.request.GET:获取查询字符串参数 案例: 特别注意: 2.request.POST:post请求数据,只能获取表单参数 3.reque ...
- Django框架(二十)—— Django rest_framework-认证组件
Django rest_framework-认证组件 一.什么是认证 只有认证通过的用户才能访问指定的url地址,比如:查询课程信息,需要登录之后才能查看,没有登录,就不能查看,这时候需要用到认证组件 ...
- Django REST framework 1
Django REST framework Django REST framework官方文档:点击 中文文档:点击 安装djangorestframework:pip3 install djang ...
- 源码剖析Django REST framework的认证方式及自定义认证
源码剖析Django REST framework的认证方式 由Django的CBV模式流程,可以知道在url匹配完成后,会执行自定义的类中的as_view方法. 如果自定义的类中没有定义as_vie ...
- [Django青铜修炼手册] 初识Django
Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站!采用了MVC的框架模式,即模型M,视图V和控制器C,也可以称为MVT模式,模型M,视图V,模板T.在学 ...
- 深入Django(1): 通用视图 (generic views)
如果对Django的基础部分尚不熟悉,请参考<Django实战>系列. 内容提要 1. 回顾Django的视图函数(view function) 2. 在视图函数中使用模板 3. 简化视图 ...
- Django REST framework 源码解析
先放图,放图说话,可能有点长 主流程 这个颜色 从setting导入默认数据流程是 这个颜色 主流程大概流程写一下:as_view 实际返回view,并把参数{"get":&quo ...
- Django中的request和response
1.Django的架构 核心是middleware(中间件),django所有的请求.返回都由中间件来完成. 中间件,就是处理HTTP的request和response的,类似插件,比如有Reques ...
最新文章
- R语言sys方法:sys.chmod函数改变指定文件的权限、Sys.Date函数返回系统的当前日期、Sys.time函数返回系统的当前时间
- java 枚举 被继承_enum不能被继承
- codeforces Cable Connection
- [css] img标签是行内元素,为什么却能设置宽高
- 使用WAMP5搭建Apache+MySQL+PHP环境
- Oracle日期类型转换格式
- 使用mapReduce分析简单天气数据
- python : pandas库的后继者polars库
- python屏幕找图_Python实现按键精灵(二)-找图找色
- 萤火虫(FA)算法(附完整Matlab代码,可直接复制)
- 逆向之Smali入门学习
- python脚本编程基础读后感_Python入门经典的读后感10篇
- 计算机桌面有扫描图标如何开始扫,如何使用扫描仪扫描文件
- 无视硬件检测直接运行Win10混合现实门户
- Zbrush中常用的8种笔刷,笔刷中的八大金刚你用过几个?
- 兼容IE系列浏览器的CSS Hack
- 自动化测试——执行javaScript脚本
- 这10个问题帮你搞清楚SaaS是什么
- 采购计算机硬件的理论,计算机硬件采购合同要点分析.doc
- 开箱——Amazon Lightsail(远程云桌面)
热门文章
- 如何解决Configuration system failed to initialize
- Illustrator中文版教程,如何在 Illustrator 中为创建的图形添加颜色?
- Illustrator 教程,如何在 Illustrator 中编辑路径和形状?
- 如何在macOS中查找和删除潜在的驱动程序冲突?
- Texpad for Mac(LaTeX编辑器软件)
- Mac屏幕常亮时间控制:Theine
- 如何在M1 Mac上安装iPhone或iPad应用程序?
- 如何在M1上运行较早的非本机Intel x86应用
- 想要轻松制作GIF图片,来看篇超全面的分析!
- Mac如何解压rar,zip等各种格式文件