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中字符串的处理技巧分享
Sep 17 Python
Python文件与文件夹常见基本操作总结
Sep 19 Python
Python爬取当当、京东、亚马逊图书信息代码实例
Dec 09 Python
python conda操作方法
Sep 11 Python
Python操作Sonqube API获取检测结果并打印过程解析
Nov 27 Python
python绘制规则网络图形实例
Dec 09 Python
Python 内置变量和函数的查看及说明介绍
Dec 25 Python
Python+appium框架原生代码实现App自动化测试详解
Mar 06 Python
用python给csv里的数据排序的具体代码
Jul 17 Python
利用Python实现Json序列化库的方法步骤
Sep 09 Python
Python中Pyspider爬虫框架的基本使用详解
Jan 27 Python
Python中如何处理常见报错
Jan 18 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 模拟get_headers函数的代码示例
2013/04/27 PHP
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
ThinkPHP的L方法使用简介
2014/06/18 PHP
php实现的支持断点续传的文件下载类
2014/09/23 PHP
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
php验证码生成器
2017/05/24 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
JavaScript静态的动态
2006/09/18 Javascript
js返回前一页刷新本页重载页面
2014/07/29 Javascript
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
2017/08/17 Javascript
vue2实现数据请求显示loading图
2017/11/28 Javascript
小程序点击图片实现自动播放视频
2020/05/29 Javascript
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
2019/01/24 Javascript
微信小程序身份证验证方法实现详解
2019/06/28 Javascript
javascript跳转与返回和刷新页面的实例代码
2019/11/20 Javascript
微信小程序图片加载失败时替换为默认图片的方法
2019/12/09 Javascript
[02:20]DOTA2英雄基础教程 黑暗贤者
2013/12/19 DOTA
[04:49]2014DOTA2国际邀请赛 Newbee顺利挺进总决赛 ImbaTV独家专访
2014/07/19 DOTA
[02:28]PWL开团时刻DAY3——Ink Ice与DeMonsTer之间的勾心斗角
2020/11/03 DOTA
Python查看多台服务器进程的脚本分享
2014/06/11 Python
python操作redis的方法
2015/07/07 Python
django开发之settings.py中变量的全局引用详解
2017/03/29 Python
python算法演练_One Rule 算法(详解)
2017/05/17 Python
Python中join函数简单代码示例
2018/01/09 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
Urban Outfitters德国官网:美国跨国生活方式零售公司
2018/05/21 全球购物
如何将字串String转换成整数int
2015/02/21 面试题
财务经理岗位职责
2013/11/09 职场文书
会计专业毕业生求职信
2014/07/04 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
党小组鉴定意见
2015/06/02 职场文书
创业计划书之奶茶店开店方案范本!
2019/08/06 职场文书
2019年新郎保证书3篇
2019/10/17 职场文书