对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和Ruby中each循环引用变量问题(一个隐秘BUG?)
Jun 04 Python
python编程开发之日期操作实例分析
Nov 13 Python
python用模块zlib压缩与解压字符串和文件的方法
Dec 16 Python
详解使用 pyenv 管理多个版本 python 环境
Oct 19 Python
Python数据结构与算法之列表(链表,linked list)简单实现
Oct 30 Python
python tensorflow基于cnn实现手写数字识别
Jan 01 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
Aug 03 Python
Selenium定位元素操作示例
Aug 10 Python
Python如何基于selenium实现自动登录博客园
Dec 16 Python
Python selenium如何打包静态网页并下载
Aug 12 Python
Python存储读取HDF5文件代码解析
Nov 25 Python
用python基于appium模块开发一个自动收取能量的小助手
Sep 25 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
Ajax+PHP 边学边练 之二 实例
2009/11/24 PHP
PHP 使用memcached简单示例分享
2015/03/05 PHP
PHP查看当前变量类型的方法
2015/07/31 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
2017/07/27 PHP
laravel 字段格式化 modle 字段类型转换方法
2019/09/30 PHP
PHP CURL实现模拟登陆并上传文件操作示例
2020/01/02 PHP
js获取url中指定参数值的示例代码
2013/12/14 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
Jquery Ajax xmlhttp请求成功问题
2015/02/04 Javascript
JavaScript中的some()方法使用详解
2015/06/09 Javascript
js实现select跳转菜单新窗口效果代码分享(超简单)
2015/08/21 Javascript
JS截取字符串实例详解
2015/11/24 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
2017/05/03 Javascript
js随机生成一个验证码
2017/06/01 Javascript
利用JS做网页特效_大图轮播(实例讲解)
2017/08/09 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
Vue实现搜索结果高亮显示关键字
2019/05/28 Javascript
vue+AI智能机器人回复功能实现
2020/07/16 Javascript
在Python的列表中利用remove()方法删除元素的教程
2015/05/21 Python
深度定制Python的Flask框架开发环境的一些技巧总结
2016/07/12 Python
python实现下载文件的三种方法
2017/02/09 Python
python监控进程脚本
2018/04/12 Python
Python使用分布式锁的代码演示示例
2018/07/30 Python
python中seaborn包常用图形使用详解
2019/11/25 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
2020/03/08 Python
解决echarts中饼图标签重叠的问题
2020/05/16 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
2020/06/15 Python
护理毕业生自荐信范文
2013/12/22 职场文书
保安的辞职报告怎么写
2014/01/20 职场文书
淘宝中秋节活动方案
2014/01/31 职场文书
剪彩仪式主持词
2014/03/19 职场文书
讲解员培训方案
2014/05/04 职场文书
我爱祖国演讲稿
2014/09/02 职场文书
研究生给导师的自荐信
2015/03/06 职场文书
Android Studio 计算器开发
2022/05/20 Java/Android