对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 相关文章推荐
使用go和python递归删除.ds store文件的方法
Jan 22 Python
python使用socket远程连接错误处理方法
Apr 29 Python
基于Python如何使用AIML搭建聊天机器人
Jan 27 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
Apr 12 Python
浅谈python类属性的访问、设置和删除方法
Jul 25 Python
python退出命令是什么?详解python退出方法
Dec 10 Python
在Python中表示一个对象的方法
Jun 25 Python
在Python中COM口的调用方法
Jul 03 Python
Python产生一个数值范围内的不重复的随机数的实现方法
Aug 21 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
Sep 15 Python
Django 路由层URLconf的实现
Dec 30 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
Jan 03 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
晶体管单管来复再生式收音机
2021/03/02 无线电
PHP输出控制功能在简繁体转换中的应用
2006/10/09 PHP
Adodb的十个实例(清晰版)
2006/12/31 PHP
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
PHP实现微信公众平台音乐点播
2014/03/20 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
PHP7新特性foreach 修改示例介绍
2016/08/26 PHP
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
JavaScript常用对象的方法和属性小结
2012/01/24 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
jQuery父级以及同级元素查找介绍
2013/09/04 Javascript
js限制文本框只能输入数字方法小结
2014/06/16 Javascript
使用Nodejs开发微信公众号后台服务实例
2014/09/03 NodeJs
使用javascript实现监控视频播放并打印日志
2015/01/05 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
JavaScript事件发布/订阅模式原理与用法分析
2018/08/21 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
JS实现获取数组中最大值或最小值功能示例
2019/03/02 Javascript
浅谈JavaScript节流和防抖函数
2020/08/25 Javascript
python自然语言编码转换模块codecs介绍
2015/04/08 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
TensorFlow损失函数专题详解
2018/04/26 Python
Django中间件基础用法详解
2019/07/18 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
python opencv实现简易画图板
2020/08/27 Python
详解Pycharm安装及Django安装配置指南
2020/09/15 Python
澳洲最大的时尚奢侈品电商平台:Cettire
2020/06/15 全球购物
顶岗实习计划书
2014/01/10 职场文书
《海伦?凯勒》教学反思
2014/04/17 职场文书
设计师求职信
2014/07/01 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
使用CSS实现一个搜索引擎的原理解析
2021/09/25 HTML / CSS
以下牛机,你有几个
2022/04/05 无线电
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技