对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的WEB框架Flask中使用多个配置文件的解决方法
Apr 18 Python
python中readline判断文件读取结束的方法
Nov 08 Python
Linux下使用python调用top命令获得CPU利用率
Mar 10 Python
Python使用Scrapy爬取妹子图
May 28 Python
Python中return语句用法实例分析
Aug 04 Python
Python实现字典(dict)的迭代操作示例
Jun 05 Python
Python2和Python3中urllib库中urlencode的使用注意事项
Nov 26 Python
详解Python3除法之真除法、截断除法和下取整对比
May 23 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
Apr 24 Python
python接入支付宝的实例操作
Jul 20 Python
彻底解决Python包下载慢问题
Nov 15 Python
最新Python idle下载、安装与使用教程图文详解
Nov 28 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
生成卡号php代码
2008/04/09 PHP
php一个找二层目录的小东东
2012/08/02 PHP
PHP获取访问页面HTTP状态码的实现代码
2016/11/03 PHP
探究Laravel使用env函数读取环境变量为null的问题
2016/12/06 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
javascript中的107个基础知识收集整理 推荐
2010/03/29 Javascript
AngularJS中取消对HTML片段转义的方法例子
2015/01/04 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
jQuery  ready方法实现原理详解
2016/10/19 Javascript
js调用屏幕宽度的简单方法
2016/11/14 Javascript
smartupload实现文件上传时获取表单数据(推荐)
2016/12/12 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
2017/01/13 Javascript
vue通过watch对input做字数限定的方法
2017/07/13 Javascript
Vue.js实现的购物车功能详解
2019/01/27 Javascript
vue开发拖拽进度条滑动组件
2019/09/21 Javascript
layui-select动态选中值的例子
2019/09/23 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
2019/11/09 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
基于JavaScript实现猜数字游戏代码实例
2020/07/30 Javascript
python实现的重启关机程序实例
2014/08/21 Python
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
2017/12/20 Python
Python assert语句的简单使用示例
2019/07/28 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
美国酒店控股公司:Choice Hotels
2018/06/15 全球购物
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
化工专业自荐书
2014/06/16 职场文书
2014年客房部工作总结
2014/11/22 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
Java处理延时任务的常用几种解决方案
2022/06/01 Java/Android