blu*_*ank 23 blueprint flask http-status-code-404
可以为蓝图设置error_handler吗?
@blueprint.errorhandler(404)
def page_not_found(error):
return 'This page does not exist', 404
Run Code Online (Sandbox Code Playgroud)
编辑:
https://github.com/mitsuhiko/flask/blob/18413ed1bf08261acf6d40f8ba65a98ae586bb29/flask/blueprints.py
您可以指定应用程序范围和蓝图本地error_handler
suz*_*kya 26
你可以使用这样的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
Run Code Online (Sandbox Code Playgroud)
小智 10
errorhandler是从 Flask 继承的方法,而不是蓝图。如果您使用的是蓝图,则等效于app_errorhandler.
文档建议采用以下方法:
def app_errorhandler(self, code):
"""Like :meth:`Flask.errorhandler` but for a blueprint. This
handler is used for all requests, even if outside of the blueprint.
"""
Run Code Online (Sandbox Code Playgroud)
因此,这应该有效:
from flask import Blueprint, render_template
USER = Blueprint('user', __name__)
@USER.app_errorhandler(404)
def page_not_found(e):
""" Return error 404 """
return render_template('404.html'), 404
Run Code Online (Sandbox Code Playgroud)
另一方面,虽然下面的方法没有给我带来任何错误,但它不起作用:
from flask import Blueprint, render_template
USER = Blueprint('user', __name__)
@USER.errorhandler(404)
def page_not_found(e):
""" Return error 404 """
return render_template('404.html'), 404
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9222 次 |
| 最近记录: |