一尘不染

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

flask

我正在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

阅读 862

收藏
2020-04-07

共1个答案

一尘不染

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

from flask import jsonify

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

要返回状态码,只需在返回的末尾返回即可,如下所示:

return jsonify(data), 200

更新
从flask v1.1开始,return语句将jsonify在第一个返回值中自动创建一个字典。所以你可以简单地使用

return data, 200  

请注意,默认值为200。

2020-04-07