这里的问题是我试图在我的蓝图中使用我的数据库连接,但是尽管我努力导入,但我似乎无法避免输入错误。这是我原来的问题:
原始海报提出了一个建议:Circular import of db reference using Flask-SQLAlchemy and Blueprints,但必须有一种更简单的做事方式。
我在原始问题中尝试了这个建议,当我试图在我的蓝图中拉入mongo连接时导致导入错误。错误是:
ImportError: cannot import name 'mongo'
我还尝试移动导入位置,以便在我的login.py中进行数据库连接之后,但是这一切似乎都不起作用。我在哪里可以找到一个简单的工作示例,我可以使用它似乎是防弹的。
答案 0 :(得分:1)
通过移除依赖关系可以避免循环引用。
通用循环参考情景:
A.py:
import B
def dependency():
pass
B.py:
from A import dependency
可以通过重构来避免:
A.py:
import B
from C import dependency
B.py:
from C import dependency
C.py:
def dependency():
pass
错误:ImportError: cannot import name 'mongo'
建议你提交的文件不能找到模块mongo
。
要解决此问题,请确保模块路径正确,并且任何文件夹中都包含__init__.py
文件。
同样来自您之前的问题,请注意您可以将您的instancied mongo变量附加到您的烧瓶应用程序,然后当使用current_app时,您将获得数据库连接。
app = Flask(__name__)
app.mongo = PyMongo(app)