【问题标题】:Sending JSON and status code with a Flask response [duplicate]使用 Flask 响应发送 JSON 和状态码 [重复]
【发布时间】:2018-01-06 19:26:11
【问题描述】:

我知道我可以使用Response(status=200) 设置响应的状态代码。设置状态码时如何返回 JSON 数据?

from flask import Flask, Response

@app.route('/login', methods=['POST'])
def login():
    response = Response(status=200)
    # need to set JSON like {'username': 'febin'}
    return response

【问题讨论】:

    标签: json flask


    【解决方案1】:

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

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

    要返回状态码,请返回响应和代码的元组:

    return jsonify(data), 200
    

    请注意,200 是默认状态代码,因此无需指定该代码。


    更新

    Flask 1.1 开始,return 语句将自动在第一个返回值中使用 jsonify 字典。可以直接返回数据:

    return data
    

    你也可以返回一个状态码:

    return data, 200
    

    【讨论】:

      【解决方案2】:

      您可以像这样将数据附加到响应中:

      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 参数定义。

      【讨论】:

        猜你喜欢
        • 2011-09-04
        • 2017-10-24
        • 1970-01-01
        • 2020-10-09
        • 1970-01-01
        • 1970-01-01
        • 2019-07-20
        • 1970-01-01
        • 2016-08-17
        相关资源
        最近更新 更多