【问题标题】:Output exception message in Flask-Restful在 Flask-Restful 中输出异常消息
【发布时间】:2015-09-24 21:25:01
【问题描述】:

在 Flask-Restful 中,可以在引发某些特定异常时定义特定的静态消息:

errors = {
           'SomeException': {
            'message': 'Some custom error message',
            'status': 500,
        }
}

api_bp = Blueprint('my_bp', __name__)
api = Api(api_bp, errors=errors)

问题是我的SomeException 包含我想在响应中返回的数据。有办法吗?使用纯 Flask,我可以创建一个具有所有所需逻辑的函数,并用 errorhandler 装饰器装饰它。

但是我如何使用 Flask-Restful 做到这一点?

【问题讨论】:

    标签: python flask flask-restful


    【解决方案1】:

    您可以在 abort() 调用中定义错误消息。

    if something_is_wrong:
        custom_message = 'Here is my custom error'
        abort(400, message='There is an error: ' + custom_message)
    

    这将中止脚本并在正文中返回 HTTP 状态 400 响应:

    {"message":"There is an error: Here is my custom error"}
    

    【讨论】:

    • 这很不合时宜。我应该用 try/except 块包围每个方法,并在出现错误时使用正确的消息中止。这很吵。
    • 是的,尽管您可以跳过使用 abort() 并为此使用纯 Flask。 Flask-Restful 只是 Flask 之上的一些附加功能,有些人觉得有帮助,有些人则没有。
    猜你喜欢
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    相关资源
    最近更新 更多