请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于request

老师可以讲一下

request.form
request.json
request.args

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

正在回答 回答被采纳积分+3

2回答

提问者 老卢123123 2018-07-17 21:58:12
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 回复 有任何疑惑可以回复我~
  • 7七月 #1
    这不是很正常么,你看一下你的ajax是不是post的json数据啊
    回复 有任何疑惑可以回复我~ 2018-07-17 22:27:48
7七月 2018-07-17 19:55:32

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

0 回复 有任何疑惑可以回复我~
  • 提问者 老卢123123 #1
    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 21:59:09
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号