gpt4 book ai didi

python - 无法在 flask 和 sqlalchemy 中多次导入 db 对象

转载 作者:太空宇宙 更新时间:2023-11-04 03:40:11 25 4
gpt4 key购买 nike

我有几个模块:start.py、user.py、projects.py

在 start.py 中我有:

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'my_database_URI'
db = SQAlchemy(app)
db.createAll()

我需要同时使用 user.py 和 projects.py 中的 db 对象。如果我这样导入它:

from start import db

然后如果我在两个模块中都这样做,我会得到一个错误。例如,如果我只将它导入到 user.py - 那么它就可以正常工作。我得到的错误是“ImportError:无法导入名称 db”。

有办法解决吗?

最佳答案

听起来这是一个循环导入问题。

我解决这个问题的方法是在根目录中有另一个文件,一个 shared.py 文件。在该文件中,创建数据库对象,

from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy()

在您的start.py 中,不要创建新的数据库对象。相反,做

from shared import db
db.init_app(app)

在任何你想使用 db 对象的地方,包括你的模型文件,从 shared.py 导入它:

from shared import db
# do stuff with db

这样,共享文件中的对象将使用应用程序上下文进行初始化,并且没有循环导入的机会。

关于python - 无法在 flask 和 sqlalchemy 中多次导入 db 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26859155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com