很多时候,我们都是返回的json数据,而不再是html页面。
但是总是无法避免出现错误 403 404 500等错误
当出现错误,flask依然采用默认的html响应格式
abort.mapping 可以找到所有的错误列表
app.register_error_handler 和 @app.errorhandler相同。
from flask import Flask,jsonify,abort
from werkzeug.exceptions import HTTPException,default_exceptions
def JsonApp(app):
def error_handling(error):
if isinstance(error,HTTPException):
result = { "code":error.code,"description":error.description,"message":str(error)}
else:
description = abort.mapping[500].description
result = {"code": 500, "description":description, "message": str(error)}
resp = jsonify(result)
resp.status_code = result["code"]
return resp
for code in default_exceptions.keys():
app.register_error_handler(code,error_handling)
return app
app = Flask(__name__)
app = JsonApp(app)
@app.route("/api")
def myfunc():
1/0
return "Hello World"
if __name__ == '__main__':
app.run()