我在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
答案 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参数定义。