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 相关文章推荐
pymongo实现多结果进行多列排序的方法
May 16 Python
发布你的Python模块详解
Sep 15 Python
Python实现检测文件MD5值的方法示例
Apr 11 Python
Python解决八皇后问题示例
Apr 22 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
May 24 Python
PyCharm代码提示忽略大小写设置方法
Oct 28 Python
使用Python获取网段IP个数以及地址清单的方法
Nov 01 Python
python3中property使用方法详解
Apr 23 Python
PyQt5 实现字体大小自适应分辨率的方法
Jun 18 Python
Python下应用opencv 实现人脸检测功能
Oct 24 Python
Python如何将字符串转换为日期
Jul 31 Python
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
Apr 25 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
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
PHP zlib扩展实现页面GZIP压缩输出
2010/06/17 PHP
一个PHP缓存类代码(附详细说明)
2011/06/09 PHP
php单例模式实现(对象只被创建一次)
2012/12/05 PHP
浅析PHP微信支付通知的处理方式
2014/05/25 PHP
PHP之autoload运行机制实例分析
2014/08/28 PHP
PHP函数超时处理方法
2016/02/14 PHP
Javascript 实用小技巧
2010/04/07 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
基于 Docker 开发 NodeJS 应用
2014/07/30 NodeJs
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
2017/02/19 Javascript
使用prop解决一个checkbox选中后再次选中失效的问题
2017/07/05 Javascript
js实现以最简单的方式将数组元素添加到对象中的方法
2017/12/20 Javascript
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
微信小程序scroll-view组件实现滚动动画
2018/01/31 Javascript
解决vue中post方式提交数据后台无法接收的问题
2018/08/11 Javascript
Koa代理Http请求的示例代码
2018/10/10 Javascript
Node.js从字符串生成文件流的实现方法
2019/08/18 Javascript
Node.JS用纯JavaScript生成图片或滑块式验证码功能
2019/09/12 Javascript
python基础教程之Filter使用方法
2017/01/17 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
Python集中化管理平台Ansible介绍与YAML简介
2019/06/12 Python
使用 Django Highcharts 实现数据可视化过程解析
2019/07/31 Python
Tensorflow使用Anaconda、pycharm安装记录
2020/07/29 Python
css3 中translate和transition的使用方法
2020/03/26 HTML / CSS
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
Priority Pass机场贵宾室会籍计划:全球超过1200间机场贵宾室
2018/08/26 全球购物
舞蹈比赛获奖感言
2014/02/04 职场文书
高三毕业典礼主持词
2014/03/27 职场文书
保研专家推荐信范文
2015/03/25 职场文书
民间借贷纠纷案件代理词
2015/05/26 职场文书
少先队入队仪式主持词
2015/07/04 职场文书
Mysql多层子查询示例代码(收藏夹案例)
2022/03/31 MySQL