开始在flask中执行一些更高级的过程,我很难弄清楚如何导入我的错误处理文件。代码从init和error中狙击。怎么了?
我无法加载错误模块。我试过从错误中导入*,我得到了一个导入错误,试着把它移出工厂,但仍然得到错误。从错误中尝试导入*,尝试导入错误。所有这些都在某种程度上失败了。在我看来,我错过了一些简单的东西,比如逗号什么的。
这是一些代码
第一个文件-初始化
from flask import Flask, render_template
def create_app():
# Instantiate App
app = Flask(__name__)
with app.app_context():
# Import Blueprints
from .foodtracker.routes import foodtracker
from .fitness.routes import fitness
from .bio.routes import bio
from .home.routes import home
# Import models, and error handler
from . import errors
# Register Blue Prints
app.register_blueprint(foodtracker)
app.register_blueprint(fitness)
app.register_blueprint(bio)
app.register_blueprint(home)
return app
和错误.py
from flask import render_template
from . import app
@app.errorhandler(404)
def pagenotfound(error):
return render_template('/errors/404.html'), 404
目录结构
/fitlife
/fitlife
/bio
/home
/fitness
/foodtracker
__init__.py
errors.py
models.py
您有循环导入。也就是说,app
文件尝试导入errors
文件,errors
文件尝试导入app
文件。正确的处理方法是"静音"errors.py
文件,这意味着它只包含错误本身,而不使用decorator来注册它们。然后,errors.py
文件将不需要导入app
。注册可以使用更高级别文件中的app.register_error_handler
来完成。