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/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