对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 + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
Jul 14 Python
进一步探究Python的装饰器的运用
May 05 Python
Python自定义简单图轴简单实例
Jan 08 Python
Python2中文处理纪要的实现方法
Mar 10 Python
Python内置函数reversed()用法分析
Mar 20 Python
TensorFlow利用saver保存和提取参数的实例
Jul 26 Python
Python http接口自动化测试框架实现方法示例
Dec 06 Python
Django框架登录加上验证码校验实现验证功能示例
May 23 Python
python绘制BA无标度网络示例代码
Nov 21 Python
Pytorch之view及view_as使用详解
Dec 31 Python
Scrapy框架实现的登录网站操作示例
Feb 06 Python
Python如何使用正则表达式爬取京东商品信息
Jun 01 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
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
2014/06/22 PHP
修改destoon会员公司的伪静态中的com目录的方法
2014/08/21 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
2019/12/12 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
js css样式操作代码(批量操作)
2009/10/09 Javascript
js 小数取整的函数
2010/05/10 Javascript
javascript实现div的显示和隐藏的小例子
2013/06/25 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
2013/11/19 Javascript
JavaScript利用正则表达式去除日期中的-
2014/06/09 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
一个超简单的jQuery回调函数例子(分享)
2016/08/08 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
详解使用nodeJs安装Vue-cli
2017/05/17 NodeJs
AngularJS  ng-repeat遍历输出的用法
2017/06/19 Javascript
vue组件watch属性实例讲解
2017/11/07 Javascript
浅谈Vue 数据响应式原理
2018/05/07 Javascript
js正则取值的结果数组调试方法
2018/10/10 Javascript
vue项目动态设置页面title及是否缓存页面的问题
2018/11/08 Javascript
更优雅的微信小程序骨架屏实现详解
2019/08/07 Javascript
jQuery实现的移动端图片缩放功能组件示例
2020/05/01 jQuery
使用python搭建Django应用程序步骤及版本冲突问题解决
2013/11/19 Python
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
对numpy数据写入文件的方法讲解
2018/07/09 Python
Python读写zip压缩文件的方法
2018/08/29 Python
学习python的前途 python挣钱
2019/02/27 Python
Window10下python3.7 安装与卸载教程图解
2019/09/30 Python
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
Sisley法国希思黎中国官网:享誉全球的奢华植物美容品牌
2019/06/30 全球购物
法国春天百货官网:Printemps.com
2020/06/29 全球购物
2013年高中生自我评价
2013/10/23 职场文书
材料化学专业求职信
2014/07/15 职场文书
2014领导干部四风问题查摆思想汇报
2014/09/13 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
2015年预备党员自我评价
2015/03/04 职场文书
通知函格式范文
2015/04/27 职场文书
2019年干货:自我鉴定
2019/03/25 职场文书