我目前有一个具有以下结构的Flask应用程序:
deploy/
api/
customer/
models.py
contact/
models.py
campaign/
models.py
activity/
models.py
__init__.py
database.py
tests/
test_api.py
因为我有这么多型号,所以我将它们拆分成单独的文件,这在我尝试初始化我的数据库时会引起问题。
在我的每个模型中,我执行以下操作以使Flask-SQLAlchemy的模型调用可用:
from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class User(db.Model):
...
这样做意味着每个模型都有一个不同的db
对象,这使得无法正确初始化我的应用程序。
如何构建项目,以便我可以拥有一个db
对象,我的所有模型,测试以及create_app()
中的__init__.py
函数都会使用该对象?
答案 0 :(得分:3)
这是一种方式:
myapp/ __init__.py database.py app.py model1/ __init__.py models.py model2/ __init__.py models.py
在database.py中:
from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy()
在各种models.py文件中:
from ..database import db
class User(db.Model):
...