flask resquest响应POST请求的json数据问题?

eslin 发布于 2015/04/23 16:11
阅读 9K+
收藏 0

我在测试使用flask进行登录验证时,遇到下面的问题:

客户端使用Request进行请求,代码如下:

import requests ; 
from flask import json;
values={'id':'111','title':'test','pwd':'AZD123DFA'};
headers = {'content-type': 'application/json',"Accept": "application/json"};
r = requests.post('http://localhost:5000/login',json.dumps(values),headers);
print r.text;
服务端代码处理如下:logins.py

from app import app ; 
from flask import request ;
from flask import json ,jsonify;
@app.route('/login',methods=['POST'])
def do_login():
    print '*****************************'
    print request.json ; #have no the json data ?
    ld={
          'id':request.json['id'],
          'name':request.json['title'],
          'pwd':request.json['pwd'],
          'state':request.json['state']
    }
    return jsonify({'result':ld}),201;

但结果并没有取得request.json中的数据,也是我客户端通过json传过来的验证信息

服务端错误如下:

  File "F:\caddy\app\logins.py", line 9, in do_login
    'id':request.json['id'],
KeyError: 'id'

我是新手刚接触python,望高手解答!

加载中
0
e
eslin

已解决,原因在于Post函数未添加关键字。

r = requests.post('http://localhost:5000/login',json.dumps(values),headers);

具体参见:

http://www.python-requests.org/en/latest/user/quickstart/#more-complicated-post-requests

http://stackoverflow.com/questions/14112336/flask-request-and-application-json-content-type?rq=1

http://blog.csdn.net/iloveyin/article/details/21444613

返回顶部
顶部