Flask 中未提供自定义 HTTP 错误模板

Custom HTTP error templates not being served in Flask

我尝试实施此文档 https://flask.palletsprojects.com/en/1.1.x/patterns/errorpages/ 中的代码,但我为 HTTP 404 错误创建的自定义错误模板未加载(它加载 Flask 的默认模板)。处理错误的方法没有被调用,我不确定为什么。我是否正确实施了错误处理程序?

_初始化_.py

from flask import Flask

app = Flask(__name__)

def create_app():

    from flask_app.main.routes import main
    from flask_app.testing_errors.routes import testing_errors

    app.register_blueprint(main)
    app.register_blueprint(testing_errors)

    return app

run.py

from flask_app import create_app
# importing the create_app method above creates the flask application instance after executing the command: flask run

testing_errors/routes.py

from flask import Blueprint, render_template

testing_errors = Blueprint("testing_errors", __name__)

@testing_errors.errorhandler(404)
def page_not_found(e):
    print("test")
    return render_template("404.html"), 404

404.html

 <html lang="en">
    <head>
      <title>404</title>
    </head>
    <body>
      <h1>404 Page Not Found</h1>
    </body>
 </html>

因为您正在使用蓝图来处理整个 Flask 应用程序错误,这是您需要 app_errorhandler 而不是 errorhandler

的最佳实践
@testing_errors.app_errorhandler(404)
def page_not_found(e):
    print("test")
    return render_template("404.html"), 404

参考这个文档https://flask.palletsprojects.com/en/1.1.x/api/?highlight=app_errorhandler#flask.Blueprint.app_errorhandler