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的函数的一些高阶特性
Apr 27 Python
解决Mac下首次安装pycharm无project interpreter的问题
Oct 29 Python
pygame游戏之旅 python和pygame安装教程
Nov 20 Python
Python matplotlib的使用并自定义colormap的方法
Dec 13 Python
Python3实现的判断回文链表算法示例
Mar 08 Python
Python实现的排列组合、破解密码算法示例
Apr 12 Python
python二进制文件的转译详解
Jul 03 Python
Pandas之groupby( )用法笔记小结
Jul 23 Python
Python实现加密接口测试方法步骤详解
Jun 05 Python
python SOCKET编程基础入门
Feb 27 Python
快速一键生成Python爬虫请求头
Mar 04 Python
Python集合set()使用的方法详解
Mar 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双向链表定义与用法示例
2018/01/31 PHP
tp5.1 框架查询表达式用法详解
2020/05/25 PHP
点击文章内容处弹出页面代码
2009/10/01 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
2013/11/19 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
jQuery中:last-child选择器用法实例
2014/12/31 Javascript
javascript数组去重方法分析
2016/12/15 Javascript
Angular.JS中的this指向详解
2017/05/17 Javascript
js获取一组日期中最近连续的天数
2017/05/25 Javascript
微信小程序Redux绑定实例详解
2017/06/07 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
ionic+html5+API实现双击返回键退出应用
2019/09/17 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
js实现页面图片消除效果
2020/03/24 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
[02:25]DOTA2英雄基础教程 虚空假面
2014/01/02 DOTA
在Django的模型中添加自定义方法的示例
2015/07/21 Python
Python socket实现多对多全双工通信的方法
2019/02/13 Python
python自动发邮件总结及实例说明【推荐】
2019/05/31 Python
Django使用rest_framework写出API
2020/05/21 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
使用CSS3配合IE滤镜实现渐变和投影的效果
2015/09/06 HTML / CSS
HTML5 Canvas绘制五星红旗
2016/05/04 HTML / CSS
科尔士百货公司官网:Kohl’s
2016/07/11 全球购物
Madewell美德威尔美国官网:美国休闲服饰品牌
2016/11/25 全球购物
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
.NET初级开发工程师面试题
2014/04/18 面试题
英语专业职业生涯规划范文
2014/03/05 职场文书
2015届本科毕业生自我鉴定
2014/09/27 职场文书
民主评议党员工作总结
2014/10/20 职场文书
党的群众路线教育实践活动学习笔记范文
2014/11/06 职场文书
2014年班干部工作总结
2014/11/25 职场文书
会计求职自荐信范文
2015/03/04 职场文书