请求对象

一、客户端传参的几种方式

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对象相关推荐

  1. formdata 接受参数中带有class 对象_浅析JAVA中的反射机制及对Servlet的优化

    今天来聊聊java中的反射机制,工作以后发现很多东西动不动就要使用反射或者动态代理,如果不能很好的理解反射,那么对于动态代理等一些重要的设计模式就会有种不够通透的感觉. 所谓的反射,就是在运行状态中, ...

  2. 请求转发(request对象)和重定向(response)的区别及何时使用请求转发和重定向

    标题request和response主要区别: 1. 请求转发使用 request对象,重定向使用 response 对象 2. 请求转发使用服务器端路径,重定向使用客户端路径 3. 请求转发不能跳转 ...

  3. python 调用函数 开销_参数中带有函数的Python日志记录开销

    调用前的函数参数评估 好了,您看到传递给logging.debug('Factorial of 100000 =',math.factorial(100000))的参数需要在调用logging.deb ...

  4. https返回400_HTTP请求中带有特殊字符|,返回400错误

    Java平台,服务器是Tomcat8,前端ajax访问服务器时,F12返回400错误,经分析,URL地址中get传参值里面含有"|", Invalid character foun ...

  5. SpringMVC接受参数

    SpringMVC接受参数 SpringMVC 能将GET.POST请求中的参数(键值对.Json)自动转换成我们需要的类型,如基本类型.数组.List.Set.Map.POJO,以及它们的组合. p ...

  6. 如何编写列名中带有空格的SQL查询

    在这篇文章中,我们将学习如何写出列名中带有空格的SQL查询.空格在数据库对象的名称和表的列名的命名规则中受到限制.如果你想在对象名或列名中加入空格,查询和应用代码必须以不同的方式编写.在编写动态SQL ...

  7. spring aspect通知中获取request对象

    注:aop = aspect = 切面 在aspect 中一般是做: 事务控制.日志.权限控制 等等,这些场景. 在aop切面类中,直接使用ServletActionContext.getReques ...

  8. Django请求和响应对象

    Django请求和响应对象 Django 使用请求和响应对象在系统中传递状态. 当一个页面被请求时,Django 会创建一个 HttpRequest 对象,这个对象包含了请求的元数据.然后,Djang ...

  9. Javaweb-Servlet总结(概述、接口使用、配置、获取请求方式、路径操作、Request对象、Response对象)

    文章目录 Servlet概述 Servlet核心接口和类 三种自定义Servlet接口的方法 1.实现Servlet接口 2.继承GenericServlet抽象类 3.继承HttpServlet抽象 ...

最新文章

  1. 12 Django cooking与session
  2. 移动开发平台性能比較
  3. 华为P50 Pro宣传海报曝光:双环形后置相机设计
  4. JavaScript 原型总结三 函数和对象的关系
  5. 音乐机器人活动教案_幼儿园小班音乐教案小熊跳舞律动活动反思【幼儿教案】...
  6. 兄弟连php课件,兄弟连php课件
  7. 电子工程专业用得最多的17种软件,你哪个用得好?
  8. 粪斗这杆大旗下,注定只是少部分人的盛宴
  9. 爬取中国知识产权案件网
  10. 分享2个ICON资源链接
  11. 2023年全国最新工会考试精选真题及答案53
  12. 毕业设计 基于stm32的灯光控制系统 物联网
  13. D38 Java智能电话项目本————创建实体类
  14. Nginx代理域名证书替换失效
  15. Java Email Server
  16. 贴片功率电感封装尺寸与性能
  17. 【亡羊补牢】JS灵魂之问 第23期 修炼内功 关于闭包的回顾
  18. 计算机应用技术简历就业意向,车辆工程专业的应届毕业生简历上就业意向应怎么填?...
  19. vue中使用wangeditor富文本编辑器(含图片上传和回显)
  20. 利用canvas制作加速球波浪效果

热门文章

  1. mysql常用命令--入门
  2. Python编程基础:第十七节 集合Set
  3. 基于SQL on Hadoop的数据仓库技术
  4. HBase 数据导入功能实现方式解释
  5. A XSS filter for Java EE web apps--转载
  6. javascript-for-loop-example--reference
  7. java中的mmap实现--转
  8. Hudson-ci/Using Hudson/Installing Hudson/Installing Hudson RPM--官方文档
  9. 巨头都在争抢无人驾驶 这家智慧停车公司却先上了路 科技事务 百家号 08-14 15:55 今年来,互联网巨头在智慧交通领域动作频频,4月初,百度提出雄心勃勃的“阿波罗计划”,宣布开放自动驾驶平台以
  10. IBM在人工智能方面的新进展,理解谈话情景和感知情绪