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 Deque 模块使用详解
Jul 04 Python
在Python下利用OpenCV来旋转图像的教程
Apr 16 Python
Python操作Access数据库基本步骤分析
Sep 19 Python
pytorch构建网络模型的4种方法
Apr 13 Python
python 字典修改键(key)的几种方法
Aug 10 Python
python可视化实现代码
Jan 15 Python
解决python字典对值(值为列表)赋值出现重复的问题
Jan 20 Python
详解Django定时任务模块设计与实践
Jul 24 Python
python scatter函数用法实例详解
Feb 11 Python
几款Python编译器比较与推荐(小结)
Oct 15 Python
详解java调用python的几种用法(看这篇就够了)
Dec 10 Python
利用Python将list列表写入文件并读取的方法汇总
Mar 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
PHP面向对象法则
2012/02/23 PHP
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
发现的以前不知道的函数
2006/09/19 Javascript
js停止输出代码
2008/07/20 Javascript
jquery的相对父元素和相对文档定位示例代码
2013/08/02 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
使用jQuery和PHP实现类似360功能开关效果
2014/02/12 Javascript
Javascript基础知识(一)核心基础语法与事件模型
2014/09/29 Javascript
javascript与css3动画结合使用小结
2015/03/11 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
原生js实现轮播图
2017/02/27 Javascript
js 数字、字符串、布尔值的转换方法(必看)
2017/04/07 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
2017/05/17 jQuery
详解JS构造函数中this和return
2017/09/16 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
2019/09/25 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
2020/07/07 Javascript
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
python实现zencart产品数据导入到magento(python导入数据)
2014/04/03 Python
Python3生成手写体数字方法
2018/01/30 Python
使用python编写udp协议的ping程序方法
2018/04/22 Python
Python调用C语言的实现
2019/07/26 Python
seek引发的python文件读写的问题及解决
2019/07/26 Python
美国和加拿大计算机和电子产品购物网站:TigerDirect.com
2019/09/13 全球购物
大学毕业通用个人的求职信
2013/12/08 职场文书
美术指导求职信
2014/03/17 职场文书
教师研修随笔感言
2015/11/18 职场文书
最新农村养殖致富:资金投入较低的创业项目有哪些?
2019/09/26 职场文书
python - timeit 时间模块
2021/04/06 Python
vue+element ui实现锚点定位
2021/06/29 Vue.js