formdata 接受参数中带有class 对象_Django(五)- 请求与响应 - request对象
请求对象
一、客户端传参的几种方式
1. 通过URL路径(path)传递,例如:http://127.0.0.1:8000/news/1/2,两个参数:id和page
2. 通过 query string查询字符串 传递
i. 例如:http://127.0.0.1:8000/news?category=1&page=2
3. 通过 body请求体 传递,又可根据传递的数据格式,分为:
i. 键值对:category=1&page=2
ii. 表单数据
iii. 非表单数据(json,xml)
4. 通过http协议请求头(header)传递
二、HttpRequest对象
一、Django请求和响应过程:
二、request对象常用属性:
三、QueryDict对象
· 所在的包:django.http.QueryDict
· HttpRequest 对象中的 GET 和 POST 属性都是QueryDict类型
· 与python字典不同:QueryDict对象一个键可以保存多个值
· get() 方法
(1) 根据键获取值
(2) 如果一个键同时拥有多个值,将获取最后一个值
(3) 如果键不存在则返回None值,可以设置返回自定义的默认值
dict.get('键', 默认值)
· getlist() 方法
(1) 根据键获取多个值,值以列表返回
(2) 如果键不存在则返回空列表[]
dict.getlist('键', 默认值)
四、通过request获取请求参数
1. 获取查询字符串
一、需求
获取URL地址 http://127.0.0.1:8000/news?category=1&page=2
二、代码参考
重要:查询字符串不区分请求方式,即使客户端通过POST方式发起请求,依然可以通过request.GET获取
请求中的查询字符串数据。
2. 获取请求体数据
请求体数据格式不固定,可以是表单类型字符串,可以是JSON字符串,可以是XML字符串,应区别对待。
可以发送请求体数据的请求方式有POST、PUT、PATCH、DELETE。
2.1 获取表单数据Form Data(键值对)
前端发送的表单或键值对类型的请求体数据,可以通过request.POST属性获取
重要:request.POST只能用来获取POST方式的请求体表单数据或键值对数据。如果为非post请求提交的
请求体数据,或者是请求体数据类型为非表单或非键值对数据,则需要通过request.body属性获取提交的
数据后,再自己手动解析。
2.2 非表单类型 Non-Form Data
非表单类型的请求体数据,Django无法自动解析,可以通过request.body属性获取最原始的请求体数据,自
己按照请求体格式(JSON、XML等)进行解析。request.body返回bytes类型。
例如获取请求体中的json数据:{"category": 1, "page": 2}
3. 获取请求头数据
可以通过request.META属性获取请求头headers中的数据,request.META为字典类型。
注意:
· 获取自定义的请求头属性值时,需要加前缀 HTTP_ 并转成大写,作为键来获取值
示例:
formdata 接受参数中带有class 对象_Django(五)- 请求与响应 - request对象相关推荐
- formdata 接受参数中带有class 对象_浅析JAVA中的反射机制及对Servlet的优化
今天来聊聊java中的反射机制,工作以后发现很多东西动不动就要使用反射或者动态代理,如果不能很好的理解反射,那么对于动态代理等一些重要的设计模式就会有种不够通透的感觉. 所谓的反射,就是在运行状态中, ...
- 请求转发(request对象)和重定向(response)的区别及何时使用请求转发和重定向
标题request和response主要区别: 1. 请求转发使用 request对象,重定向使用 response 对象 2. 请求转发使用服务器端路径,重定向使用客户端路径 3. 请求转发不能跳转 ...
- python 调用函数 开销_参数中带有函数的Python日志记录开销
调用前的函数参数评估 好了,您看到传递给logging.debug('Factorial of 100000 =',math.factorial(100000))的参数需要在调用logging.deb ...
- https返回400_HTTP请求中带有特殊字符|,返回400错误
Java平台,服务器是Tomcat8,前端ajax访问服务器时,F12返回400错误,经分析,URL地址中get传参值里面含有"|", Invalid character foun ...
- SpringMVC接受参数
SpringMVC接受参数 SpringMVC 能将GET.POST请求中的参数(键值对.Json)自动转换成我们需要的类型,如基本类型.数组.List.Set.Map.POJO,以及它们的组合. p ...
- 如何编写列名中带有空格的SQL查询
在这篇文章中,我们将学习如何写出列名中带有空格的SQL查询.空格在数据库对象的名称和表的列名的命名规则中受到限制.如果你想在对象名或列名中加入空格,查询和应用代码必须以不同的方式编写.在编写动态SQL ...
- spring aspect通知中获取request对象
注:aop = aspect = 切面 在aspect 中一般是做: 事务控制.日志.权限控制 等等,这些场景. 在aop切面类中,直接使用ServletActionContext.getReques ...
- Django请求和响应对象
Django请求和响应对象 Django 使用请求和响应对象在系统中传递状态. 当一个页面被请求时,Django 会创建一个 HttpRequest 对象,这个对象包含了请求的元数据.然后,Djang ...
- Javaweb-Servlet总结(概述、接口使用、配置、获取请求方式、路径操作、Request对象、Response对象)
文章目录 Servlet概述 Servlet核心接口和类 三种自定义Servlet接口的方法 1.实现Servlet接口 2.继承GenericServlet抽象类 3.继承HttpServlet抽象 ...
最新文章
- 12 Django cooking与session
- 移动开发平台性能比較
- 华为P50 Pro宣传海报曝光:双环形后置相机设计
- JavaScript 原型总结三 函数和对象的关系
- 音乐机器人活动教案_幼儿园小班音乐教案小熊跳舞律动活动反思【幼儿教案】...
- 兄弟连php课件,兄弟连php课件
- 电子工程专业用得最多的17种软件,你哪个用得好?
- 粪斗这杆大旗下,注定只是少部分人的盛宴
- 爬取中国知识产权案件网
- 分享2个ICON资源链接
- 2023年全国最新工会考试精选真题及答案53
- 毕业设计 基于stm32的灯光控制系统 物联网
- D38 Java智能电话项目本————创建实体类
- Nginx代理域名证书替换失效
- Java Email Server
- 贴片功率电感封装尺寸与性能
- 【亡羊补牢】JS灵魂之问 第23期 修炼内功 关于闭包的回顾
- 计算机应用技术简历就业意向,车辆工程专业的应届毕业生简历上就业意向应怎么填?...
- vue中使用wangeditor富文本编辑器(含图片上传和回显)
- 利用canvas制作加速球波浪效果
热门文章
- mysql常用命令--入门
- Python编程基础:第十七节 集合Set
- 基于SQL on Hadoop的数据仓库技术
- HBase 数据导入功能实现方式解释
- A XSS filter for Java EE web apps--转载
- javascript-for-loop-example--reference
- java中的mmap实现--转
- Hudson-ci/Using Hudson/Installing Hudson/Installing Hudson RPM--官方文档
- 巨头都在争抢无人驾驶 这家智慧停车公司却先上了路 科技事务 百家号 08-14 15:55 今年来,互联网巨头在智慧交通领域动作频频,4月初,百度提出雄心勃勃的“阿波罗计划”,宣布开放自动驾驶平台以
- IBM在人工智能方面的新进展,理解谈话情景和感知情绪