使用 Flask 响应发送 JSON 和状态码 [重复]
Posted
技术标签:
【中文标题】使用 Flask 响应发送 JSON 和状态码 [重复]【英文标题】:Sending JSON and status code with a Flask response [duplicate] 【发布时间】: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
【问题讨论】:
【参考方案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 参数定义。
【讨论】:
以上是关于使用 Flask 响应发送 JSON 和状态码 [重复]的主要内容,如果未能解决你的问题,请参考以下文章