如何在python中连接模块



开始在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来完成。

最新更新