python - Pony orm 连接池
问题描述
使用带有postgres(aws rds)的python pony orm ...使用它来执行原始sql ...所以我围绕小马类创建了一个包装类来初始化数据库对象
self.db = Database()
self.db.bind(provider="postgres", user=self.username, password=self.password,
host=self.hostname, database=self.database)
每次调用一个方法来执行原始 sql 查询(下一行)时,都会建立一个新连接。连接池何时启动
self.db.execute(query, query_args)
或者有没有办法设置连接池参数。
根据小马 orm 文档
连接池。无需跟踪数据库连接。您在需要时拥有连接,当您完成交易后,连接将返回到池中。
但我看到每次进行选择调用时总是打开连接。例如:5 次通话导致 5 次连接。我怎样才能设置最大值。连接数?
解决方案
正如 PonnyORM 的文档所说:
...
bind (provider, *args, **kwargs)
bind (*args, **kwargs) 将实体绑定到数据库。参数: provider (str) – 数据库提供者的名称。数据库提供程序是一个位于 pony.orm.dbproviders 包中的模块。它知道如何使用特定的数据库。在数据库提供程序名称之后,您应该指定将传递给相应 DBAPI 驱动程序的 connect() 方法的参数。Pony 附带以下提供程序:“sqlite”、“postgres”、“mysql”、“oracle”、“cockroachdb”。此参数也可以用作关键字参数。
args –数据库驱动程序所需的参数。
kwargs –数据库驱动程序所需的参数。...
如果您使用 Psycopg,您可以查看此文档以在数据库设置中使用更多参数。我不确定 PonyORM 是否在其库中考虑了这个包的所有选项。
推荐阅读
- java - Captaincasa 网格分页
- amazon-web-services - AWS DMS - 如何将 RDS 表数据写入单个 S3 目标文件?
- javascript - 重构此函数以降低其在 if else 条件下的认知复杂性
- javascript - 获取树的每个节点下的子节点数
- python - 路径之和 III - Leetcode
- powershell - 电源外壳解决方案检查器脚本问题
- python - 如何自动化从具有多个部分的 CSV 文件中读取的脚本?
- matter.js - 如何从身体中获得约束
- c - 了解嵌入式 C 中的 I/O 内存位置
- postgresql - 可以在端口 22 上连接到 Azure VM,但不能在端口 5111 上连接