在Flask-SQLAlchemy中,我在哪里初始化和存储数据库对象?

时间:2013-07-30 12:27:12

标签: python database sqlalchemy flask flask-sqlalchemy

我正在使用Python中的Flask和SQLAlchemy构建一个网站,到目前为止非常有趣。

然而,有一些我不确定的事情。以下代码用于连接数据库:

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'bla'
db = SQLAlchemy(app)

但是,如何在不同的文件中重用此对象?我已经尝试将其存储在g中,但是当我尝试在Web请求范围之外使用数据库时,这会导致数据库模型出现问题。是否有一种标准方法可以在多个文件/类中访问db

1 个答案:

答案 0 :(得分:2)

将其放在项目文件夹下的__init__.py文件中。这样,您的应用程序就变成了一个包,您可以重用这些变量。例如,如果您的项目名为myproject,则可以使用

myproject/
    __init__.py
    models.py
    views.py

现在,在models.py等模块中,你可以这样做:

from myproject import db