Django 请求Request的具体使用方法


Posted in Python onNovember 11, 2019

1 URL路径参数

在定义路由URL时,使用正则表达式提取参数的方法从URL中获取请求参数,Django会将提取的参数直接传递到视图的传入参数中。

未命名参数按顺序传递, 如

url(r'^index/([a-z]+)/(\d{4})/$', views.index),

def index(request, parameter1, parameter2):
  print(parameter1)
  print(parameter2)
  return HttpResponse('OK')

有命名参数按名传递,如

url(r'^index/(?P<parameter1>[a-z]+)/(?P<parameter2>\d{4})/$', views.index),

def index(request, parameter1, parameter2):
  print(parameter1)
  print(parameter2)
  return HttpResponse('OK')

2、 查询字符串Query String

获取请求路径中的查询字符串参数,可以通过request.GET属性获取,返回QueryDict对象。

# /q/?a=2&b=3&a=4

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

2、 QueryDict对象

HttpRequest对象的属性GET、POST都是QueryDict类型的对象

方法get():根据键获取值

如果一个键同时拥有多个值将获取最后一个值

如果键不存在则返回None值,可以设置默认值进行后续处理

dict.get('键',默认值)
可简写为
dict['键']

方法getlist():根据键获取值,值以列表返回,可以获取指定键的所有值

如果键不存在则返回空列表[],可以设置默认值进行后续处理

dict.getlist('键',默认值)

3、 请求体

请求体数据格式不固定,可以是表单类型字符串,可以是JSON字符串,可以是XML字符串,应区别对待。

可以有POST、PUT、PATCH、DELETE。

Django默认开启了CSRF防护,会对上述请求方式进行CSRF防护验证,在测试时可以关闭CSRF防护机制,方法为在settings.py文件中注释掉CSRF中间件,如:

Django 请求Request的具体使用方法

4、 表单类型 Form Data

前端发送的表单类型的请求体数据,可以通过request.POST属性获取,返回QueryDict对象

def body(request):
  a = request.POST.get('a')
  b = request.POST.get('b')
  alist = request.POST.getlist('a')
  print(a)
  print(b)
  print(alist)
  return HttpResponse('OK')

5、非表单类型 Non-Form Data

非表单类型的请求体数据,Django无法自动解析,可以通过request.body属性获取最原始的请求体数据。

import json

def body_json(request):
  json_str = request.body
  json_str = json_str.decode() # python3.6 无需这步
  data = json.loads(json_str)
  print(data['a'])
  print(data['b'])
  return HttpResponse('OK')

6、请求头

可以通过request.META属性获取请求头headers中的数据

Django 请求Request的具体使用方法

def headers(request):
  print(request.META['SERVER_PORT'])
  return HttpResponse('OK')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现简单的代理服务器
Jul 25 Python
Python 12306抢火车票脚本
Feb 07 Python
python3+PyQt5实现支持多线程的页面索引器应用程序
Apr 20 Python
Python使用add_subplot与subplot画子图操作示例
Jun 01 Python
python中多层嵌套列表的拆分方法
Jul 02 Python
selenium+python实现自动化登录的方法
Sep 04 Python
Python imread、newaxis用法详解
Nov 04 Python
python opencv 检测移动物体并截图保存实例
Mar 10 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
Jun 03 Python
python 如何区分return和yield
Sep 22 Python
python实现三次密码验证的示例
Apr 29 Python
详细介绍python操作RabbitMq
Apr 12 Python
浅谈Python类中的self到底是干啥的
Nov 11 #Python
python 调试冷知识(小结)
Nov 11 #Python
通过 Django Pagination 实现简单分页功能
Nov 11 #Python
python机器学习实现决策树
Nov 11 #Python
Python SQLAlchemy入门教程(基本用法)
Nov 11 #Python
django中间键重定向实例方法
Nov 10 #Python
Java文件与类动手动脑实例详解
Nov 10 #Python
You might like
Apache设置虚拟WEB
2006/10/09 PHP
PHP安装攻略:常见问题解答(二)
2006/10/09 PHP
php下批量挂马和批量清马代码
2011/02/27 PHP
探讨:如何通过stats命令分析Memcached的内部状态
2013/06/14 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
通过继承IHttpHandle实现JS插件的组织与管理
2010/07/13 Javascript
3个可以改善用户体验的AngularJS指令介绍
2015/06/18 Javascript
浅析JS运动
2015/12/28 Javascript
React-Native 组件之 Modal的使用详解
2017/08/08 Javascript
基于vue组件实现猜数字游戏
2020/05/28 Javascript
JS实现的文件拖拽上传功能示例
2018/05/21 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
JavaScript enum枚举类型定义及使用方法
2020/05/15 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
[57:12]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第一场 10.31
2020/11/02 DOTA
[01:04:20]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.29
2020/12/02 DOTA
python服务器与android客户端socket通信实例
2014/11/12 Python
python开发中module模块用法实例分析
2015/11/12 Python
tensorflow构建BP神经网络的方法
2018/03/12 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
2020/06/24 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
pycharm 实现显示project 选项卡的方法
2019/01/17 Python
Python如何实现邮件功能
2020/05/27 Python
keras导入weights方式
2020/06/12 Python
浅谈如何使用python抓取网页中的动态数据实现
2020/08/17 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
2020/10/10 Python
html5中audio支持音频格式的解决方法
2018/08/24 HTML / CSS
Jack Rogers官网:美国经典的女性鞋靴品牌
2019/09/04 全球购物
澳大利亚购买太阳镜和眼镜网站:Glamoureyes
2020/09/22 全球购物
艺术设计专业个人求职信
2013/09/21 职场文书
励志演讲稿600字
2014/08/21 职场文书
企业财务总监岗位职责
2015/04/03 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
python3 hdf5文件 遍历代码
2021/05/19 Python
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server