【发布时间】:2016-07-07 06:27:03
【问题描述】:
我有一个带有一些数据逻辑的模块models.py:
db = PostgresqlDatabase(database='database', user='user')
# models logic
和实际与数据库交互的烧瓶应用程序:
from models import db, User, ...
但我想从烧瓶应用程序中的一个配置文件中初始化所有设置:
所以我可以将db 与其他东西分开(我需要这个来访问models 中的模块变量db):
import models
from models import User, ...
app.config.from_object(os.environ['APP_SETTINGS'])
models.db = PostgresqlDatabase(database=app.config['db'],
user=app.config['db'])
并进一步将db 用作models.db
但看起来有点丑。重复导入,模块内容的不同用法..
有没有更好的方法来处理这种情况?
【问题讨论】:
-
from somewhere import db很糟糕——这意味着数据库永远无法重新初始化,因此您的应用程序无法动态更改配置。它也使单元测试变得更加困难,你最终会在许多模块中模拟出相同的数据库。
标签: python python-2.7 scope python-module