Flask:Post Response(json.dumps(dict))没有返回json

时间:2017-03-04 06:48:34

标签: python flask

出于某种原因,我没有得到json作为我的回答。我究竟做错了什么?我希望能够在调用post函数时得到结果dict,但我回来的只是一个200状态代码,表明一切正常。

@app.route('/data', methods=['POST'])
def data():
    if request.method == "POST":  
        result = {
                    "data": {
                        "name": "First, Last",
                        "value": 1
                      }
                    }
        return Response(json.dumps(result), mimetype='application/json; charset=utf-8')
    else:
        abort(404)

我尝试过不同的方法来返回json对象:

return json.dumps(result)

return jsonify(result)

但没有任何作用:\

1 个答案:

答案 0 :(得分:1)

我不确定但是可能是,网址/data在其他地方被使用,你永远不会调用这个特定的功能。 您可以在函数中添加一些日志记录或打印以验证是否已调用该函数。 我在一个简单的例子中使用python 2.7和Flask 0.12尝试了你的代码,它可以工作。

 # -*- coding: utf-8 -*-

import json
from flask import Flask, jsonify, Response, request

# Initialize the Flask application
app = Flask(__name__)

# Set some configuration to the flask ap
app.config['DEBUG'] = True


# Default route for /
@app.route("/data", methods=['POST'])
def index():
    if request.method == "POST":
        result = {
            "data": {
                "name": "First, Last",
                "value": 1
            }
        }
        # Both worked 
        # return jsonify(result)
        return Response(json.dumps(result), mimetype='application/json; charset=utf-8')
    else:
        return abort(404)

将文件导出为FLASK_APP export FLASK_APP=server.py 并运行服务器 flask run