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 yield使用方法示例
Dec 04 Python
Python多进程机制实例详解
Jul 02 Python
详解python中xlrd包的安装与处理Excel表格
Dec 16 Python
python fabric实现远程部署
Jan 05 Python
人机交互程序 python实现人机对话
Nov 14 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
Nov 07 Python
对Python3中bytes和HexStr之间的转换详解
Dec 04 Python
python中如何实现将数据分成训练集与测试集的方法
Sep 13 Python
Python一行代码解决矩阵旋转的问题
Nov 30 Python
python 输出列表元素实例(以空格/逗号为分隔符)
Dec 25 Python
python通过opencv实现图片裁剪原理解析
Jan 19 Python
python3.7.2 tkinter entry框限定输入数字的操作
May 22 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循环函数使用介绍之PHP基础入门教程
2013/09/21 PHP
URL地址中的#符号使用说明
2011/02/12 Javascript
jQuery EasyUI API 中文文档 - Documentation 文档
2011/09/29 Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
javascript自动生成包含数字与字符的随机字符串
2015/02/09 Javascript
AngularJS的一些基本样式初窥
2015/07/27 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
手机图片预览插件photoswipe.js使用总结
2016/08/25 Javascript
Javascript下拉刷新的简单实现
2017/02/14 Javascript
详解从零搭建 vue2 vue-router2 webpack3 工程
2017/11/22 Javascript
react配合antd组件实现的管理系统示例代码
2018/04/24 Javascript
Vue实现一个图片懒加载插件
2019/03/11 Javascript
angular inputNumber指令输入框只能输入数字的实现
2019/12/03 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
基于python的汉字转GBK码实现代码
2012/02/19 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
2019/06/14 Python
选择Python写网络爬虫的优势和理由
2019/07/07 Python
Python爬虫实现“盗取”微信好友信息的方法分析
2019/09/16 Python
利用keras加载训练好的.H5文件,并实现预测图片
2020/01/24 Python
新手入门学习python Numpy基础操作
2020/03/02 Python
python使用pyecharts库画地图数据可视化的实现
2020/03/25 Python
python 窃取摄像头照片的实现示例
2021/01/08 Python
带你认识HTML5中的WebSocket
2015/05/22 HTML / CSS
医药大学生求职简历的自我评价
2013/10/17 职场文书
大学生工作推荐信范文
2013/12/02 职场文书
生物科学系大学生的自我评价
2013/12/20 职场文书
应聘编辑职位自荐信范文
2014/01/05 职场文书
建筑工程毕业生自我鉴定
2014/01/14 职场文书
学校安全检查制度
2014/01/27 职场文书
小学教师自我鉴定范文
2014/03/20 职场文书
大专生自我鉴定怎么写
2014/09/16 职场文书
学校政风行风自查自纠报告
2014/10/21 职场文书
MybatisPlus EntityWrapper如何自定义SQL
2022/03/22 Java/Android