繁体   English   中英

Python Web应用程序的数据库访问策略

[英]Database access strategy for a Python web app

我一直在写一个Python Web应用程序(在Flask中),我不相信我完全掌握数据库访问应该如何在多个请求/响应周期中工作。 在Python之前,我的Web编程经验是PHP(几年值得),我担心我的PHP经验会误导我的一些Python工作。

在PHP中,每个新请求都会创建一个全新的数据库连接,因为请求之间不会共享任何内容。 您拥有的请求越多,您需要支持的连接就越多。 但是,在Python Web应用程序中,跨请求的共享状态,数据库连接可以保持不变。

所以我需要管理这些连接,并确保我关闭它们。 此外,我需要某种连接池,因为如果我只有一个连接在所有请求中共享,那么如果我没有足够的可用连接,请求可能会阻止等待数据库访问。

这是正确的理解吗? 或者我确定了差异吗? 在Python Web应用程序中,我是否需要具有跨多个请求共享其连接的数据库连接池? 池中的连接数取决于我的应用程序的请求负载?

我正在使用Psycopg2。

你有没有看过SQLAlchemy? 它处理了许多脏细节 - 它维护了一个连接池,并在必要时重新使用/关闭它们。

为了避免连接成本,似乎最好的方法是使用池。
或者直接使用来自docs的 psycopg2.pool 或者通过更高级别的抽象层作为SQL Alchemy,在这里注释下划线。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM