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 读写XML文件的实例
Aug 02 Python
Python调用C语言的方法【基于ctypes模块】
Jan 22 Python
python构建深度神经网络(DNN)
Mar 10 Python
基于Python Numpy的数组array和矩阵matrix详解
Apr 04 Python
python爬取内容存入Excel实例
Feb 20 Python
python实现统计文本中单词出现的频率详解
May 20 Python
python下PyGame的下载与安装过程及遇到问题
Aug 04 Python
Python装饰器的应用场景代码总结
Apr 10 Python
Python flask框架如何显示图像到web页面
Jun 03 Python
tensorflow下的图片标准化函数per_image_standardization用法
Jun 30 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
Jan 24 Python
pytorch 实现L2和L1正则化regularization的操作
Mar 03 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 SQL Injection with MySQL
2011/02/27 PHP
PHP抽象类 介绍
2012/06/13 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
php递归遍历多维数组的方法
2015/04/18 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
2016/10/25 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
Javascript alert消息换行的方法
2013/08/07 Javascript
js实现简单登录功能的实例代码
2013/11/09 Javascript
jQuery实现强制cookie过期方法汇总
2015/05/22 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
JS正则验证多个邮箱完整实例【邮箱用分号隔开】
2017/04/19 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
2017/08/08 jQuery
es6系列教程_ Map详解以及常用api介绍
2017/09/25 Javascript
微信小程序用户位置权限的获取方法(拒绝后提醒)
2018/11/15 Javascript
使用FormData实现上传多个文件
2018/12/04 Javascript
javascript-hashchange事件和历史状态管理实例分析
2020/04/18 Javascript
详解JS函数防抖
2020/06/05 Javascript
jquery插件懒加载的示例
2020/10/24 jQuery
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
Python isinstance判断对象类型
2008/09/06 Python
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
Python实现的建造者模式示例
2018/08/06 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
python的re模块使用方法详解
2019/07/26 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
如何在Python对Excel进行读取
2020/06/04 Python
年度考核自我鉴定
2013/11/09 职场文书
家居设计专业个人自荐信范文
2013/11/26 职场文书
个人党性剖析材料
2014/02/03 职场文书
物资采购方案
2014/06/12 职场文书
党员教师群众路线思想汇报范文
2014/10/28 职场文书
民事赔偿协议书
2014/11/02 职场文书
三八节活动主持词
2015/07/04 职场文书
利用Python第三方库实现预测NBA比赛结果
2021/06/21 Python
vue实现在data里引入相对路径
2022/06/05 Vue.js