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 相关文章推荐
Django imgareaselect手动剪切头像实现方法
May 26 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
May 26 Python
利用Python读取文件的四种不同方法比对
May 18 Python
Python中的默认参数实例分析
Jan 29 Python
python ChainMap的使用和说明详解
Jun 11 Python
运用PyTorch动手搭建一个共享单车预测器
Aug 06 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
Aug 18 Python
简单了解Pandas缺失值处理方法
Nov 16 Python
pytorch之inception_v3的实现案例
Jan 06 Python
django从后台返回html代码的实例
Mar 11 Python
Python爬虫headers处理及网络超时问题解决方案
Jun 19 Python
用Python制作音乐海报
Jan 26 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
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
PHP实现定时执行任务的方法
2014/10/05 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
带你了解PHP7 性能翻倍的关键
2015/11/19 PHP
Redis使用Eval多个键值自增的操作实例
2016/11/04 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
用Div仿showModalDialog模式菜单的效果的代码
2007/03/05 Javascript
JQuery 学习笔记 选择器之三
2009/07/23 Javascript
Javascript this指针
2009/07/30 Javascript
Javascript 自定义类型方法小结
2010/03/02 Javascript
如何动态加载外部Javascript文件
2015/12/02 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
Jquery元素追加和删除的实现方法
2016/05/24 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
JS定时器用法分析【时钟与菜单中的应用】
2016/12/21 Javascript
jQuery插件zTree实现单独选中根节点中第一个节点示例
2017/03/08 Javascript
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
JS二分查找算法详解
2017/11/01 Javascript
javascript面向对象三大特征之封装实例详解
2019/07/24 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
2019/11/18 jQuery
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
Python中函数的多种格式和使用实例及小技巧
2015/04/13 Python
Python Socket编程详细介绍
2017/03/23 Python
Python实现利用163邮箱远程关电脑脚本
2018/02/22 Python
Python格式化日期时间操作示例
2018/06/28 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
HTML5中的websocket实现直播功能
2018/05/21 HTML / CSS
世界上第一个创建了罩杯系统的美国内衣品牌:Maidenform
2019/03/23 全球购物
罗马尼亚在线杂货店:Pilulka.ro
2019/09/28 全球购物
入党积极分子学习两会心得体会范文
2014/03/17 职场文书
宣传口号大全
2014/06/16 职场文书
最美护士演讲稿
2014/08/27 职场文书
幼儿园六一主持词
2015/06/30 职场文书
python 统计代码耗时的几种方法分享
2021/04/02 Python
Python中的套接字编程是什么?
2021/06/21 Python
Python中字符串对象语法分享
2022/02/24 Python