关于request

来源:9-6 用户注册

老卢123123

2018-07-17

老师可以讲一下

request.form
request.json
request.args

三者之间的用法区别么. args这个应该就是接收get提交的数据,但是josn和form这个有点容易混

写回答

2回答

老卢123123

提问者

2018-07-17

request.json

 调用的是 

request.get_json()

这个函数,但是 

get_json

 这个函数默认情况下只对 mime 为

 application/json

 的请求可以正确解析。

所以解决办法是

http 请求增加 

Content-Type:application/json header

或者 使用 

request.get_json(force=True)

 忽略

mimetype

但是 实际测试的时候,比如我们的book/search ,

print(request.get_json(force=True))

依然无法获取到数据,例如前端ajax请求

$.ajax({
        url:"http://127.0.0.1:5000/book/search",  
        type:'post',
        dataType:'json',
        data:{
              'q':'金庸', 
             },
        success:function(result){
               console.log(result)
            }
        });

request.get_json(force=True) 仍然接收不到
但 request.form 则可以正常接收

0
1
7七月
这不是很正常么,你看一下你的ajax是不是post的json数据啊
2018-07-17
共1条回复

7七月

2018-07-17

这个最好的理解方式是,自己打印出来看一下 一目了然啊

0
1
老卢123123
request.json 调用的是 request.get_json() 这个函数,但是 get_json 这个函数默认情况下只对 mime 为 application/json 的请求可以正确解析。 所以解决办法是 http 请求增加 Content-Type:application/json header 或者 使用 request.get_json(force=True) 忽略 mimetype 但是 实际测试的时候,比如我们的book/search , print(request.get_json(force=True)) 依然无法获取到数据,例如前端ajax请求 $.ajax({ url:"http://127.0.0.1:5000/book/search", type:'post', dataType:'json', data:{ 'q':'金庸', }, success:function(result){ console.log(result) } }); request.get_json(force=True) 仍然接收不到 但 request.form 则可以正常接收
2018-07-17
共1条回复

Python Flask高级编程之从0到1开发《鱼书》精品项目

7月老师深入浅出剖析Flask核心机制,和你一起探讨Python高级编程

2735 学习 · 1267 问题

查看课程