Flask:通过Response对象发送数据和状态代码

时间:2017-07-31 09:35:29

标签: json flask response

我在Flask中编写微服务,通过API互相交流。

在发出POST请求时,我可以通过Response对象返回状态代码。有什么办法可以将这个函数的数据作为JSON返回吗?

from flask import Flask, Response

@app.route('/login', methods=['POST'])
def login():
   # Set the status code
   response = Response(status=200)

   # How can I return a JSON in my response object as {'username': 'febin'} ?

   return response

2 个答案:

答案 0 :(得分:23)

只需使用flask包中的jsonify()即可。 此方法采用任何可序列化的数据类型(例如,我在以下示例中使用了字典数据)。

from flask import jsonify

@app.route('/login', methods=['POST'])
def login():
    data = {'name': 'nabin khadka'}
    return jsonify(data)

要返回状态代码,只需在退货结束时将其退回,如下所示:

return jsonify(data), 200

答案 1 :(得分:4)

您可以将数据附加到响应中,如下所示:

from flask import Flask, json

@app.route('/login', methods=['POST'])
def login():
    data = {"some_key":"some_value"} # Your data in JSON-serializable type
    response = app.response_class(response=json.dumps(data),
                                  status=200,
                                  mimetype='application/json')
    return response

响应数据内容类型由mimetype参数定义。