我尝试在Flask中使用Blueprints进行404错误处理,但我似乎没有让它工作。这是我的代码:

时间:2018-05-08 18:34:55

标签: python flask error-handling http-status-code-404 blueprint

错误/ handlers.py

from flask import render_template
from autoapp import app
from dockblaster.errors import errors_blueprint


@app.errorhandler(404)
@errors_blueprint.app_errorhandler(404)
def not_found_error(error):
    return render_template('error_pages/page_not_found.html'), 404

错误/ __ INIT __ PY:

from flask import Blueprint
errors_blueprint = Blueprint('errors', __name__)
import dockblaster.errors

我终于在app.py中注册了蓝图:

def create_app(config_object=ProdConfig):

"""An application factory, as explained here: http://flask.pocoo.org/docs/patterns/appfactories/.
:param config_object: The configuration object to use.
"""

app = Flask(__name__.split('.')[0])
app.config.from_object(config_object)

from dockblaster.errors import errors_blueprint
app.register_blueprint(errors_blueprint)

register_extensions(app)
register_blueprints(app)
return app

我似乎没有这样做,因为我为重定向404错误创建的页面无法通过错误蓝图到达。

1 个答案:

答案 0 :(得分:0)

我能够自己解决这个问题。

我这样做了:

我删除了errors / handlers.py文件,并将代码添加到errors / int .py,从而避免了另一个文件导入以访问蓝图处理程序以查找错误。这似乎对我有用。