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 项目的示例,该项目很好地使用了具有不同配置值的应用程序工厂。
祝你好运,节日快乐!
我如何构建我的 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 项目的示例,该项目很好地使用了具有不同配置值的应用程序工厂。
祝你好运,节日快乐!