5.GET与POST

GET与POST是http协议中最常用的请求方式,无论哪种请求方式都是由视图接收请求

如果当我们的需求中存在get与post两者,那么我们就要在视图中做判断,像这样

我们现在代码中创建路由和视图

目录

1  GET请求

2  POST请求


1  GET请求

GET请求一般出现在下面这三种情况下

  • 浏览器地址栏输入URL,回车之后会发出GET请求
  • a href="地址?参数=值&参数=值" 前面这个是个a标签(超链接)
  • form表单中的method为get

如果在get请求中传递信息一般是用查询字符串传递,查询字符串会出现在url中,这样就不要传递一些类似账户密码这样的敏感数据

在代码中,我们一般使用下面三种方式获取传入的值

  • request.GET['参数名']
  • request.GET.get('参数名','默认值') 这里小写的.get与python字典中内置的get方法相似,用这个方法如果客户端没给值的话,我们可以给一个默认值
  • request.GET.getlist('参数名')

我们下面测试一下上面的三个方法,我们更改一下视图

然后我们在不给参数的情况下直接访问一下get_and_post这个路由

发现会报错,报错是因为request.GET['a']找不到a这个变量,我们现在把他注释掉再试一下

这次发现没有报错

我们再看一下终端

第一行是b的默认值,给了个1,第二行是getlist,由于没有给a,所以是一个空的列表

下面我们把注释的那一行打开,再给a试一下

再给一个b的值

我们查询字符串key并非只能出现1次,现在我们给多组a的值

发现如果使用request.GET['参数名']的方法会获取到给的最后输入的值,而request.getlist('参数名')会按顺序获取到所有的值

2  POST请求

一般用于向服务器提交数据时使用,客户端可以通过服务端中的表单等POST请求将数据传递给服务端,表单类似与下面这个样子

一般获取的方法是下面这三个,与GET方法类似

  • request.POST['参数名']
  • request.POST.get('参数名','默认值')
  • request.POST.getlist('参数名')

我们先在这取消掉csrf(跨站伪造请求)验证,不然会报403

我们在setting.py中把csrf的中间件注释掉

路由不动,然后改一下视图,这里我们用html写一个表单,在get的时候把这个表单展示出来,之后通过三种方法获取POST

  • 这里上面的name等于的username与下面POST[]中的username是对应的

当我们访问get_and_post这个路由之后,我们会出现这个界面

然后我们输入admin123

然后点击提交

发现return了POST的字符,然后我们看一下终端

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suyuoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值