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求相邻数的方法示例
Aug 18 Python
python之pandas用法大全
Mar 13 Python
基于数据归一化以及Python实现方式
Jul 11 Python
利用Python如何批量修改数据库执行Sql文件
Jul 29 Python
对python自动生成接口测试的示例讲解
Nov 30 Python
Python 判断图像是否读取成功的方法
Jan 26 Python
Python使用sklearn库实现的各种分类算法简单应用小结
Jul 04 Python
django数据库自动重连的方法实例
Jul 21 Python
Python模拟FTP文件服务器的操作方法
Feb 18 Python
Python参数传递机制传值和传引用原理详解
May 22 Python
python的pip有什么用
Jun 17 Python
python爬虫要用到的库总结
Jul 28 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内核介绍及扩展开发指南―基础知识
2011/09/11 PHP
php+ajax实时输入自动搜索匹配的方法
2014/12/26 PHP
PHP 读取文本文件内容并分页显示
2016/01/02 PHP
php递归函数怎么用才有效
2018/02/24 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
用Javascript读取中文COOKIE的解决办法
2007/02/15 Javascript
JavaScript中的事件处理
2008/01/16 Javascript
简易js代码实现计算器操作
2013/04/15 Javascript
深入理解JSON数据源格式
2014/01/10 Javascript
JQuery实现级联下拉框效果实例讲解
2015/09/17 Javascript
每天一篇javascript学习小结(Boolean对象)
2015/11/12 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
深入理解jquery中的each用法
2016/12/14 Javascript
JS实现字符串转驼峰格式的方法
2016/12/16 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
[57:47]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[45:50]完美世界DOTA2联赛PWL S3 CPG vs Forest 第二场 12.16
2020/12/17 DOTA
python基础教程之简单入门说明(变量和控制语言使用方法)
2014/03/25 Python
Python实现将n个点均匀地分布在球面上的方法
2015/03/12 Python
详解Python中的join()函数的用法
2015/04/07 Python
详解用python实现简单的遗传算法
2018/01/02 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
2019/06/03 Python
python将类似json的数据存储到MySQL中的实例
2019/07/12 Python
简单了解Python3里的一些新特性
2019/07/13 Python
python机器学习实现决策树
2019/11/11 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
部署Django到阿里云服务器教程示例
2020/06/03 Python
详细分析Python collections工具库
2020/07/16 Python
Python 连接 MySQL 的几种方法
2020/09/09 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
乌克兰电子产品和家用电器购物网站:TOUCH
2019/08/09 全球购物
EJB2和EJB3在架构上的不同点
2014/09/29 面试题
酒店管理专业毕业生推荐信
2013/11/10 职场文书
三问三解心得体会
2014/09/05 职场文书
python中sys模块的介绍与实例
2021/04/17 Python