Flask统一URL返回内容为Json数据
flask中如果是直接返回dict对象是会抛错误的, 下面整理了一下在flask中返回json字符串的几种办法:
(1) 使用Response对象
from flask import Response, json
@app.route("/json")
def get_json():
data = json.dumps({'fan': 1, 'b':1})
res = Response(data, content_type='application/json')
return res
(2) 使用jsonify()方法
from flask import jsonify
@app.route("/json")
def get_json():
return jsonify({'fan': 1, 'b': 2})
(3) 统一所有的返回内容为json数据
# 重写response对象
from werkzeug.wrappers import Response
from flask import jsonify
class JSONResponse(Response):
default_mimetype = "application/json"
@classmethod
def force_type(cls, response, environ=None):
if isinstance(response, dict):
response = jsonify(response)
return super(JSONResponse, cls).force_type(response, environ)
在 app.py文件中
app.response_class = JSONResponse
视图函数
from flask import jsonify
@app.route("/json")
def get_json():
return {'fan': 1, 'b': 2} # OK