关于request.POST.get
来源:4-4 实现登录功能
树莓派是什么派
2020-02-19
老师在这里如果我使用request.POST.get
获取参数的话,会很奇怪,
code = request.POST.get('code')
app_id = request.POST.get('appId')
nick_name = request.POST.get('nickName')
print(code,app_id,nick_name)
在django
后台这样子获取是可以拿到的,前台也可以,但是前台需要加上header
,关于这个header
的设置,有点奇怪.
这是小程序端部分请求代码
method: 'POST',
data: {
code,
appId,
nickName
},
header: {
'Content-Type': 'application/json'
},
如果我设置请求头类型是application/json
的话,是拿不到数据的,只有我把请求头类型设成application/x-www-form-urlencoded
的时候,才能正常拿到数据。
我猜这是因为post
请求一般被用作表单提交,所以只有application/x-www-form-urlencoded
才是起作用的。还有就是只要我这么设置请求头的话,用request.POST.get
一样可以成功执行,也就是这样子和老师您通过解析请求主体的方法是没啥区别的把?
写回答
1回答
-
咚咚呛
2020-02-20
这主要是Django侧导致的。
通过request.POST.get获取的是以表单形式提交的数据,所以需要设置form-urlencoded这样的content-type;而json数据则是通过request.body来获取的,这个区别需要注意下。
00
相似问题