我的问题是关于在生产环境或其他性能受关注的环境中使用Flask时处理数据库连接的推荐方法.在Flask中,g对象可用于存储内容,并且可以将打开的数据库连接放在那里,以允许应用程序在同一请求期间的后续数据库查询中重用它们.但是,g对象不会跨请求持久化,因此似乎每个新请求都需要一个新的数据库连接(以及由此带来的性能影响).
我在这件事上发现的最相关的问题是这个:How to preserve database connection in a python web server个,但答案只提出了连接池的抽象概念(没有将其与如何在Flask中使用以及如何跨请求生存联系在一起),或者提出了一个只与一种特定类型的数据库或特定堆栈相关的解决方案.
因此,我的问题是,当在连接到any种数据库的Flask上构建产品化应用程序时,应该采取什么样的一般方法.似乎涉及连接池的事情朝着正确的方向发展,尤其是因为这对传统的Python应用程序来说是可行的.但我想知道使用Flask时推荐的方法是什么,因为前面提到的跨连接持久性问题,以及生产中的Flask应用程序是从WSGI服务器运行的,这可能会增加更多的复杂性.
编辑:基于对炼金术的 comments .假设flask sqlalchemy解决了这个问题,它是否也适用于Neo4J,或者flask应用程序使用的任何任意数据库?许多现有的数据库连接器已经在本地支持池,那么为什么要引入一个额外的依赖项,其主要目的是提供ORM功能,而不是连接管理呢?另外,sqlalchemy如何绕过跨请求持久性的基本问题?