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"] =
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("...")
Django之HttpRequest和HttpReponse的更多相关文章
- [R]django的HTTPREQUEST对象
django的HTTPREQUEST对象 via Django使用request和response对象 当请求一张页面时,Django把请求的metadata数据包装成一个HttpRequest对象, ...
- django之HttpRequest对象
class HttpRequest[source] 属性 所有的属性都是只读的,除非另有说明 HttpRequest.scheme 字符串(http/https)表示http还是https请求 Htt ...
- django的HTTPREQUEST对象
Django使用request和response对象 当请求一张页面时,Django把请求的metadata数据包装成一个HttpRequest对象,然后Django加载合适的view方法,把这个Ht ...
- django中HttpRequest请求
视图的第一个参数必须是HttpRequest对象 在视图函数中,接收的request有如下属性: path:一个字符串,表示请求的页面的完整路径,不包含域名. method:一个字符串,表示请求使用的 ...
- Django的httprequest对象和httpresponse对象
请求一张页面时,Django把请求的metadata数据包装成一个HttpRequest对象,然后Django加载合适的view方法,把这个HttpRequest 对象作为第一个参数传给view方法. ...
- Django中HttpRequest和HttpResponse
请求和响应对象 Django中通过使用请求和响应对象来传递系统的状态. 当请求一个页面的时候,Django就创建一个HttpRequest对象,它包含了关于请求的元数据对象,然后Django加载适当的 ...
- Django中HttpRequest常用参数介绍
HttpRequest对象常用参数介绍,以及前端不同请求方式(http方法/Content-Type类型)对应的参数获取方式. 一.HttpRequest对象 django请求对象的详细参数以及实现方 ...
- Python系列文章索引
>>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is ...
- Django session 详解-part II-session
Django中的session是一个高级工具,它可以让用户存储个人信息以便在下次访问网站中使用这些信息.session的基础还是cookie,但是它提供了一些更加高级的功能.请看下面的一个例子: 使用 ...
随机推荐
- Linux之Shell 脚本加密工具-shc
Much effort, much prosperity. 为什么要加密Shell脚本呢?当然是为了安全! 可能脚本里面涉及到密码之类的就需要进行加密了 一.下载安装shc工具 要保护自己编写的she ...
- java父类调用被子类重写的方法
[转][原文] 1.如果父类构造器调用了被子类重写的方法,且通过子类构造函数创建子类对象,调用了这个父类构造器(无论显示还是隐式),就会导致父类在构造时实际上调用的是子类覆盖的方法(你需要了解jav ...
- CentOS上使用sendmail发送邮件
设置方法 set from=fromUser@domain.com smtp=smtp.domain.com set smtp-auth-user=username smtp-auth-passwor ...
- VLAN虚拟局域网技术(一)-计算机网络
本文主要知识来源于学校课程,部分知识来自于H3C公司教材,未经许可,禁止转载.如需转载,请联系作者并注明出处. 1. VLAN(Virtual LAN):我们称之为虚拟局域网,它的作用就是将物理上互 ...
- scala学习手记29 - 偏应用函数
调用函数可以说成是将函数应用于实参.如果传入所有的预期的参数,就完全应用了这个函数.如果只传入几个参数,就会得到一个偏应用函数. 偏应用函数是一个特殊的概念,在scala中它是使用val定义的,但是在 ...
- LeetCode第[19]题(Java):Remove Nth Node From End of List(删除链表的倒数第N个节点)
题目:删除链表的倒数第N个节点 难度:Medium 题目内容: Given a linked list, remove the n-th node from the end of list and r ...
- 从互信息的角度来理解tf-idf
先介绍tf idf 在一份给定的文件里,词频(term frequency,tf)指的是某一个给定的词语在该文件中出现的频率.这个数字是对词数(term count)的归一化,以防止它偏向长的文件.( ...
- 利用JS获取地址栏的中文参数
地址栏中为:localhost:22865/ZYHSYY.aspx?BQH=305&DoctorName=张三&DoctorId=100我想利用JS获取到“张三”,请问该如何写js?目 ...
- D3.js学习笔记(三)——创建基于数据的SVG元素
目标 在这一章,你将会使用D3.js,基于我们的数据来把SVG元素添加到网页中.这一过程包括:把数据绑定到元素上,然后在使用这些元素来可视化我们的数据. 注意:不同于前几章,我们从一个完整的代码开始, ...
- 安装Charles报错
去年用的是charles4.1.2版本,今年这个版本的安装包始终安装报错,不管公司电脑还是自己电脑........ 我的解决方案很Lower的.......... 登录Charles官网:https: ...