flask json序列化 全局返回404 500错误

很多时候,我们都是返回的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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值