Django中的request对象和response对象(简单整理)
时间:2019-08-19
本文章向大家介绍Django中的request对象和response对象(简单整理),主要包括Django中的request对象和response对象(简单整理)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
对Django中的request对象和response对象做一个简单的总结。
request和response在Django中的作用:
django使用request对象和response对象在系统间传递状态。当请求一个页面的时候,django会建立一个包含请求元数据的HttpRequest对象,当django加载对应的视图时,HttpRequest对象将作为视图函数的第一个参数,每个视图会返回一个HttpResponse对象,当然也有例外,以后在讨论这种情况。
reqeust对象中的基本属性:
request.scheme --> 返回一个字符串,表示请求方案 request.body --> 返回一个字符串,表示原始http请求的正文 request.path --> 返回一个字符串,表示请求页面的完整路径,不包含域名 reqeust.path_info --> path_info属性始终包含路径信息部分,不论使用的web服务器是什么,使用它代替path可以让代码在测试和开发环境中更容易切换 requst.method --> 返回一个字符串,表示你请求使用的http方法,必须使用大写 request.encoding --> 返回一个字符串,表示提交的数据的编码方式,(如果为None,则表示使用default_charset设置),默认是utf-8,这个属性是可写的 request.GET/POST -->返回的是一个类字典的对象,包含HTTP GET的所有参数/POST的参数 request.COOKIES --> 返回一个标准的字典,包含所有的cookie,键和值都是字符串 request.FILES --> 一个类似于字典的对象,包含所有的上传文件,files中的每一键为<input type="file" name=""/>中的name, files只有在请求的方法为post并且提交的form带有enctype="multipart/form-data"的情况下才会包含数据,否则,file将为一个空的类似于字典的对象 request.META --> 返回一个标准的字典,包含所有的http头部 reqeust.user --> 返回一个auth_user_model类 request.session --> 一个既可读又可写的类字典对象,表示当前的会话,只有当django启用会话的支持的时候才可用 reqeust.urlconf --> 不是由Django 自身定义的,但是如果其它代码(例如,自定义的中间件类)设置了它,Django 就会读取它。如果存在,它将用来作为当前的请求的Root URLconf, 并覆盖ROOT_URLCONF 设置 request.resolver_match --> 一个ResolverMatch 的实例,表示解析后的URL。 这个属性只有在URL 解析方法之后才设置,这意味着它在所有的视图中可以访问,但是在在URL 解析发生之前执行的中间件方法中不可以访问(比如process_request, 但你可以使用process_view 代替)
request对象中的方法:
request.get_host():返回请求的主机,如果主机位于多个代理的后面,那么get_host()失效
request.get_full_path():返回path,如果可以将加上查询字符串
例子:
"music/band/?print=true"
reqeust.build_absolute_uri(location):返回location的绝对url,如果location没有提供,那么设置为request.get_full_path(),如果URI已经是一个绝对的URI,
将不会修改。否则,使用请求中的服务器相关的变量构建绝对URI。
request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None)
返回签名过的Cookie 对应的值,如果签名不再合法则返回django.core.signing.BadSignature。如果提供default 参数,将不会引发异常并返回default 的值。
可选参数salt 可以用来对安全密钥强力攻击提供额外的保护。max_age 参数用于检查Cookie 对应的时间戳以确保Cookie 的时间不会超过max_age 秒。
request.is_secure():如果请求是安全的,则返回True,也就是请求是通过https发起的
reqeust.is_ajax():如果请求是通过XMLHttpRequest 发起的,则返回True
reqeust.read(size=None)
reqeust.readline()
reqeust.readlines()
reqeust.xreadlines()
reqeust.__iter__()
这几个方法实现类文件的接口用于读取HttpRequest· 实例。这使得可以用流的方式读取进来的请求。一个常见的用例是使用迭代解析器处理大型XML有效载荷,而不在内存中构造一个完整的XML树。
原文地址:https://www.cnblogs.com/juteng/p/11375406.html
- linux下EOF写法梳理
- 用AngularJS来实现异步数据的购物车功能设计
- span不如div的地方
- 分布式监控系统Zabbix--完整安装记录(7)-使用percona监控MySQL
- 10x Python开发者必读:本月Python文章TOP 10
- Linux下更换默认yum源为网易yum源的操作记录
- yum源使用的几个报错小总结
- JQuery笔记(一)
- Haproxy和Nginx负载均衡测试效果对比记录
- JQuery笔记(三) jquery的用途
- Heartbeat使用梳理
- JQuery笔记(二) animate支持的属性
- 腾讯叮当首次系统性展示AI能力 开放日展示实战型解决方案
- Execute 方法(Find 对象)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 这一次搞懂SpringBoot核心原理(自动配置、事件驱动、Condition)
- 全网最深分析SpringBoot MVC自动配置失效的原因
- Mybatis源码初探——优雅精良的骨架
- 深入Mybatis源码——配置解析
- 深入Mybatis源码——执行流程
- Mybatis插件扩展以及与Spring整合原理
- 你所不知道的Spring的@Autowired实现细节
- modbus-RTU-crc16——c语言
- KEIL 生成 Binaxf 文件
- Istio可观测性
- 大点干!早点散----------使用Haproxy搭建web群集
- 嵌入式系统FreeRTOS — 互斥信号量
- 面试题系列第6篇:JVM字符串常量池及String的intern方法详解?
- 机器学习(一)——K-近邻(KNN)算法
- 机器学习(二)——K-均值聚类(K-means)算法