对Django 中request.get和request.post的区别详解


Posted in Python onAugust 12, 2019

Django 中request.get和request.post的区别

POST和GET差异:

POST和GET是HTTP协议定义的与服务器交互的方法。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。另外,还有PUT和DELETE方法。

POST和GET都可以与服务器完成查,改,增,删操作。

GET提交,请求的数据会附在URL之后,以?分割URL和传输数据,多个参数用&连接;

POST提交,把提交的数据放置在HTTP包的包体中;因此,GET提交的数据会在地址栏中显示出来,而POST提交,地址栏不会改变。

GET属性

1、QueryDict类型的对象

2、包含get请求方式的所有参数

3、与url请求地址中的参数对应,位于?后面

4、参数的格式是键值对,如key1=value1

5、多个参数之间,使用&连接,如key1=value1&key2=value2

6、键是开发人员定下来的,值是可变的

示例如下

创建视图getTest1用于定义链接,getTest2用于接收一键一值,getTest3用于接收一键多值

def getTest1(request):
  return render(request,'booktest/getTest1.html')
def getTest2(request):
  return render(request,'booktest/getTest2.html')
def getTest3(request):
  return render(request,'booktest/getTest3.html')

**配置url

url(r'^getTest1/$', views.getTest1),
url(r'^getTest2/$', views.getTest2),
url(r'^getTest3/$', views.getTest3),

**创建getTest1.html,定义链接

<html>
<head>
  <title>Title</title>
</head>
<body>
链接1:一个键传递一个值
<a href="/getTest2/?a=1&b=2" rel="external nofollow" >gettest2</a><br>
链接2:一个键传递多个值
<a href="/getTest3/?a=1&a=2&b=3" rel="external nofollow" >gettest3</a>
</body>
</html>

**完善视图getTest2的代码

def getTest2(request):
  a=request.GET['a']
  b=request.GET['b']
  context={'a':a,'b':b}
  return render(request,'booktest/getTest2.html',context)

**创建getTest2.html,显示接收结果

<html>
<head>
  <title>Title</title>
</head>
<body>
a:{{ a }}<br>
b:{{ b }}
</body>
</html>

**完善视图getTest3的代码

def getTest3(request):
  a=request.GET.getlist('a')
  b=request.GET['b']
  context={'a':a,'b':b}
  return render(request,'booktest/getTest3.html',context)

**创建getTest3.html,显示接收结果

<html>
<head>
  <title>Title</title>
</head>
<body>
a:{% for item in a %}
{{ item }}
{% endfor %}
<br>
b:{{ b }}
</body>
</html>

POST属性

1、QueryDict类型的对象

2、包含post请求方式的所有参数

3、与form表单中的控件对应

4、问:表单中哪些控件会被提交?

答:控件要有name属性,则name属性的值为键,value属性的值为键,构成键值对提交。

对于checkbox控件,name属性一样为一组,当控件被选中后会被提交,存在一键多值的情况,键是开发人员定下来的,值是可变的

示例如下

定义视图postTest1

def postTest1(request):
  return render(request,'booktest/postTest1.html')

**配置url

url(r'^postTest1$',views.postTest1)

**创建模板postTest1.html

<html>
<head>
  <title>Title</title>
</head>
<body>
<form method="post" action="/postTest2/">
  姓名:<input type="text" name="uname"/><br>
  密码:<input type="password" name="upwd"/><br>
  性别:<input type="radio" name="ugender" value="1"/>男
  <input type="radio" name="ugender" value="0"/>女<br>
  爱好:<input type="checkbox" name="uhobby" value="吃"/>吃
  <input type="checkbox" name="uhobby" value="笑"/>笑
  <input type="checkbox" name="uhobby" value="酒"/>酒
  <input type="checkbox" name="uhobby" value="爬山"/>爬山<br>
  <input type="submit" value="提交"/>
</form>
</body>
</html>

**创建视图postTest2接收请求的数据

def postTest2(request):
  uname=request.POST['uname']
  upwd=request.POST['upwd']
  ugender=request.POST['ugender']
  uhobby=request.POST.getlist('uhobby')
  context={'uname':uname,'upwd':upwd,'ugender':ugender,'uhobby':uhobby}
  return render(request,'booktest/postTest2.html',context)

**配置url

url(r'^postTest2$',views.postTest2)

**创建模板postTest2.html

<html>
<head>
  <title>Title</title>
</head>
<body>
{{ uname }}<br>
{{ upwd }}<br>
{{ ugender }}<br>
{{ uhobby }}
</body>
</html>

以上这篇对Django 中request.get和request.post的区别详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中字典的setdefault()方法教程
Feb 07 Python
Python使用QQ邮箱发送Email的方法实例
Feb 09 Python
解决Linux系统中python matplotlib画图的中文显示问题
Jun 15 Python
Pycharm编辑器技巧之自动导入模块详解
Jul 18 Python
django模型层(model)进行建表、查询与删除的基础教程
Nov 21 Python
5款非常棒的Python工具
Jan 05 Python
python2.7 json 转换日期的处理的示例
Mar 07 Python
解决Python selenium get页面很慢时的问题
Jan 30 Python
python装饰器相当于函数的调用方式
Dec 27 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
May 25 Python
在keras中实现查看其训练loss值
Jun 16 Python
如何在keras中添加自己的优化器(如adam等)
Jun 19 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
Aug 12 #Python
Python简易版停车管理系统
Aug 12 #Python
Python代码实现http/https代理服务器的脚本
Aug 12 #Python
Django admin model 汉化显示文字的实现方法
Aug 12 #Python
Python简易版图书管理系统
Aug 12 #Python
django drf框架中的user验证以及JWT拓展的介绍
Aug 12 #Python
python中eval与int的区别浅析
Aug 11 #Python
You might like
星际中的相关伤害
2020/03/04 星际争霸
解析php中获取系统信息的方法
2013/06/25 PHP
九个你必须知道而且又很好用的php函数和特点
2013/08/08 PHP
php生成唯一的订单函数分享
2015/02/02 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
2016/05/16 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
JS动画效果代码3
2008/04/03 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
jQuery解析XML文件同时动态增加js文件的方法
2015/06/01 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
js验证框架之RealyEasy验证详解
2016/06/08 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
2016/11/13 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
vue左侧菜单,树形图递归实现代码
2018/08/24 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
Echarts动态加载多条折线图的实现代码
2019/05/24 Javascript
[39:52]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第一场
2018/04/04 DOTA
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
Python学习笔记之常用函数及说明
2014/05/23 Python
python在指定目录下查找gif文件的方法
2015/05/04 Python
将python代码和注释分离的方法
2018/04/21 Python
python地震数据可视化详解
2019/06/18 Python
Django权限设置及验证方式
2020/05/13 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
Tod’s英国官方网站:意大利奢华手工制作手袋和鞋履
2019/03/15 全球购物
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
微型企业创业投资计划书
2014/01/10 职场文书
心理健康活动总结
2014/04/30 职场文书
酒店节能减排方案
2014/05/26 职场文书
地理科学专业自荐信
2014/09/01 职场文书
质监局领导班子对照检查材料思想汇报
2014/09/27 职场文书
保险公司客户经理岗位职责
2015/04/09 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书
MySQL系列之十二 备份与恢复
2021/07/02 MySQL
一文带你探究MySQL中的NULL
2021/11/11 MySQL