2012-10-07 57 views

回答

19

您可以使用Blueprint.app_errorhandler方法是这样的:

bp = Blueprint('errors', __name__) 

@bp.app_errorhandler(404) 
def handle_404(err): 
    return render_template('404.html'), 404 

@bp.app_errorhandler(500) 
def handle_500(err): 
    return render_template('500.html'), 500 
+3

即使这样,蓝图视图中的“abort(404)”将由应用程序的错误处理程序处理,而不是这个。有关更多信息,请参见[Flask doc](http://flask.pocoo.org/docs/0.10/api/#flask.Blueprint.errorhandler)。 – Devi

+1

Flask的确在这个 – TjerkW

+0

很糟糕的是app_errorhandler弃用? – user805981

1

doesnt support blueprint level error handlers for 404 and 500 errors 。 BluePrint是一个漏洞抽象。如果您需要单独的错误处理程序,那么最好使用新的WSGI应用程序,这样做更有意义。

另外我会建议不要使用烧瓶,它会在各个地方使用全局变量,这会让代码难以管理,如果变得越来越大。

+2

downvoted,因为烧瓶推荐是非常主观的,与问的问题无关 – iScrE4m

3

我也无法得到评分最高的答案,但这里有一个解决方法。

您可以在蓝图的末端处使用一种全新的方式,不确定它的强大/推荐性,但它确实有效。您也可以为不同的方法添加不同的错误消息。

@blueprint.route('/<path:path>') 
def page_not_found(path): 
    return "Custom failure message"