我一直在编写一个 Python Web 应用程序(在 Flask 中),但我不相信我完全掌握数据库访问应该如何跨多个请求/响应周期工作。在使用 Python 之前,我的 Web 编程经验是 PHP(价值几年),我担心我的 PHP 经验会误导我的一些 Python 工作。
在 PHP 中,每个新请求都会创建一个全新的数据库连接,因为请求之间不会共享任何内容。您的请求越多,您需要支持的连接就越多。但是,在 Python Web 应用程序中,请求之间存在共享状态,数据库连接可以持续存在。
所以我需要管理这些连接,并确保我关闭它们。另外,我需要某种连接池,因为如果我只有一个连接在所有请求之间共享,那么如果我没有足够的可用连接,请求可能会阻塞等待数据库访问。
这是一个正确的理解吗?还是我已经很好地识别了这些差异?在 Python Web 应用程序中,我是否需要有一个跨多个请求共享其连接的数据库连接池?池中的连接数将取决于我的应用程序的请求负载?
我正在使用 Psycopg2。