如何在没有 ORM 的情况下使用 FastAPI 和 Psycopg2?

How to use FastAPI and Psycopg2 without ORM?

我有一个使用 FastAPI 的项目,但我不想使用 SQLAlchemy 或其他 ORM,因为我认为没有必要为我的查询安装额外的依赖项,这些很简单 SELECT操作。我在单独的文件中有我的路线,我想知道如何使用 psycopg2 返回的连接对象,以便我可以使用它在我的不同文件中执行我的 SQL 语句(类似于全局对象)。我读过 ContextVars 但我不知道这是否可行。现在,我有一个解决方案,我在一个单独的文件中创建我的连接对象,然后在我的路由文件中导入该对象,但也许还有另一种方法可以做到这一点。

这就是正确的做法。

在应用程序启动时在模块中创建连接(或连接池)实例,并在需要时通过导入与应用程序的其余部分共享。