我正在构建一个大型,复杂的Flask应用程序。它具有很多路由功能(需要进行数据库调用)和很多服务(还需要进行数据库调用)。
我正在使用flask_sqlalchemy使用模型语法(User.query)正常执行路由功能中的数据库调用。
我还想在服务中进行数据库调用。但是,如果没有设置应用上下文,我将无法做到这一点:
with app.app_context():
User.query
这需要导入应用程序,这会导致循环导入(因为该应用程序导入了路线,从而导入了服务,必须导入了应用程序)。
问题1:您知道解决该圆形进口问题的方法吗?
另一种方法可能是在路由中使用flask_sqlalchemy,在服务中使用sqlalchemy。这意味着除了数据库URL和模型之外,不需要共享任何内容。
问题2:您知道在flask_sqlalchemy和普通sqlalchemy中使用相同模型文件的方法吗?
我已经尝试过:https://dev.to/nestedsoftware/flask-and-sqlalchemy-without-the-flask-sqlalchemy-extension-3cf8
...但是它破坏了我的人际关系。
我正在遵循此处显示的烧瓶应用程序模式:https://github.com/sloria/cookiecutter-flask/blob/master/%7B%7Bcookiecutter.app_name%7D%7D/README.rst(应用程序工厂)
谢谢, 路易丝