Django框架HttpRequest对象用法实例分析


Posted in Python onNovember 01, 2019

本文实例讲述了Django框架HttpRequest对象用法。分享给大家供大家参考,具体如下:

1.URL路径参数

(1)位置参数:使用正则分组,与视图中的参数一一对应,不可换位置

例:

url(r'^(\d+)/(\d+)/$', views.index)
def index(request, 参数1, 参数2):
...

(2)关键字参数:参数位置可以变,与关键字保持一致即可
例:

url(r'^(?P<value1>\d+)/(?P<value2>\d+)/$', views.index)
def index(request, value2, value1):
...

2.QueryDict对象

HttpRequest对象的属性GET、POST都是QueryDict类型的对象,,QueryDict可以处理一键多值的问题。

(1)get:根据键获取值,如果有多个值,则获取最后一个。

get('键', 默认值)

(2)getlist:根据键获取值,值为列表形式。

getlist('键', 默认值)

3.查询字符串Query String

请求路径中的查询字符串(?k1=1&k2=v2…),可通过request.GET来获取,返回QueryDict对象。(不区分请求方式,POST也可用GET来获取)

例:

# /get/?a=1&b=2&a=3
def get(request):
  a = request.GET.get('a')
  b = request.GET.get('b')
  alist = request.GET.getlist('a')
  print(a) # 3
  print(b) # 2
  print(alist) # ['1', '3']
  return HttpResponse('OK')

4.请求体

(1)表单类型Form Data:

通过request.POST.get()来获取

(2)非表单类型Non-Form Data:

非表单类型数据,Django无法自动解析,可以填先通过request.body获取数据,然后按照请求格式解析

例:

import json
def post_json(request):
  json_str = request.body # 获取请求体数据
  json_str = json_str.decode() # 解码,python3.6 无需执行此步
  req_data = json.loads(json_str) # 将json转为字典
  print(req_data['a']) # 获取字典值
  print(req_data['b'])
  return HttpResponse('OK')

5.请求头

可通过request.META来获取请求头信息,类型为字典类型

6.其他

参数 描述
method 一个字符串,表示请求使用的HTTP方法,常用值包括:‘GET'、‘POST'。
use 请求的用户对象。
path 一个字符串,表示请求的页面的完整路径,不包含域名和参数部分。
encoding 一个字符串,表示提交的数据的编码方式。
FILES 一个类似于字典的对象,包含所有的上传文件。

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

Python 相关文章推荐
Python多线程学习资料
Dec 19 Python
使用Python编写简单网络爬虫抓取视频下载资源
Nov 04 Python
浅析Python中signal包的使用
Nov 13 Python
Python实现修改IE注册表功能示例
May 10 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
Nov 23 Python
Python 带有参数的装饰器实例代码详解
Dec 06 Python
Python并发:多线程与多进程的详解
Jan 24 Python
Python hexstring-list-str之间的转换方法
Jun 12 Python
python五子棋游戏的设计与实现
Jun 18 Python
Python爬取爱奇艺电影信息代码实例
Nov 26 Python
PyTorch中的padding(边缘填充)操作方式
Jan 03 Python
pandas针对excel处理的实现
Jan 15 Python
Django框架HttpResponse对象用法实例分析
Nov 01 #Python
Django框架序列化与反序列化操作详解
Nov 01 #Python
redis数据库及与python交互用法简单示例
Nov 01 #Python
python验证码图片处理(二值化)
Nov 01 #Python
使用matlab或python将txt文件转为excel表格
Nov 01 #Python
python 图片二值化处理(处理后为纯黑白的图片)
Nov 01 #Python
Python网络编程之使用TCP方式传输文件操作示例
Nov 01 #Python
You might like
PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
2009/10/22 PHP
php正则过滤html标签、空格、换行符的代码(附说明)
2010/10/25 PHP
PHP中PDO的事务处理分析
2016/04/07 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
extjs DataReader、JsonReader、XmlReader的构造方法
2009/11/07 Javascript
JavaScript 学习初步 入门教程
2010/03/25 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
java必学必会之static关键字
2015/12/03 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
2016/06/08 Javascript
JS不完全国际化&amp;本地化手册 之 理论篇
2016/09/27 Javascript
jQuery中animate的几种用法与注意事项
2016/12/12 Javascript
jQuery居中元素scrollleft计算方法示例
2017/01/16 Javascript
Vue.js实现按钮的动态绑定效果及实现代码
2017/08/21 Javascript
Node.js使用Express.Router的方法
2017/11/14 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
详解如何使用nvm管理Node.js多版本
2019/05/06 Javascript
JS实现扫码枪扫描二维码功能
2020/01/03 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
[00:43]TI7不朽珍藏III——幽鬼不朽展示
2017/07/15 DOTA
在Python中使用异步Socket编程性能测试
2014/06/25 Python
python服务器端收发请求的实现代码
2014/09/29 Python
Python开发常用的一些开源Package分享
2015/02/14 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
Python英文文章词频统计(14份剑桥真题词频统计)
2019/10/13 Python
Python如何使用内置库matplotlib绘制折线图
2020/02/24 Python
List, Set, Map是否继承自Collection接口?
2016/05/16 面试题
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
初婚初育证明范本
2015/06/18 职场文书
入党积极分子培养联系人意见
2015/08/12 职场文书
初中数学教学反思范文
2016/02/17 职场文书
干货:如何写好工作计划!
2019/05/17 职场文书
关于党风廉政建设宣传教育月的活动总结!
2019/08/08 职场文书
Python绘画好看的星空图
2022/03/17 Python