Flask 测试数据库应用上下文

Flask testing database application context

我如何构建我的 flask 项目,以便我的模型可以知道是否启用了 TESTING(从而使用测试数据库),而无需让它们处理或了解应用程序上下文。

我正在将其开发为一个开源项目,因此来源可能会对此有所说明:https://github.com/nficano/jotonce.com/blob/master/jotonce/messages/models.py#L33

我认为您 运行 正在解决这个问题,因为您没有为用户提供在 运行 时指定配置的方法。相反,managers.py 获取您的 settings.py 文件中指定的任何设置,而无需咨询最终用户可能指定的设置。

因为您确实有 factory.py,您可以从 Flask 中导入 current_app(假设您的数据库函数是在应用上下文中调用的)并在那里使用设置值。如果这是您的选择,Flask 对 configuration handling.

有一些很好的建议

如果您 运行 在您的应用程序上下文之外进行此操作,我认为 factory.py 当前的结构方式对您不起作用。您需要手动处理自己的配置。

您可以查看 https://github.com/Robpol86/Flask-Large-Application-Example/blob/master/pypi_portal/application.py 一个大型 flask 项目的示例,该项目很好地使用了具有不同配置值的应用程序工厂。

祝你好运,节日快乐!