【发布时间】:2018-04-02 13:04:00
【问题描述】:
我有一个项目,我已将我的 db.py 模块定义为:
app = get_global_flask_app()
app.config['SQLALCHEMY_DATABASE_URI'] = "postgresql://foo:bar@127.0.0.1:5432/test"
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db = SQLAlchemy(app)
db.create_all()
然后我将 db.db 导入需要查询数据库和插入数据的模块(db.session.query())。
但是,这意味着当我编写测试代码 (pytest) 来测试任何导入 db.py 的模块时,我需要定义“SQLALCHEMY_DATABASE_URI”。一种解决方案是让 db 成为惰性属性,以便仅在使用/测试数据库时才在测试中执行上面的代码。 Flask() + SQLA + SQLALCHEMY_DATABASE_URI 是否有一个我缺少的通用设计模式?你将如何解决这个问题?烧瓶配置?
【问题讨论】:
标签: python flask sqlalchemy flask-sqlalchemy