连接¶
本文档描述如何访问传递给 Tortoise.init
调用的数据库配置中定义的别名的底层连接对象 (BaseDBAsyncClient)。
下面是一个简单的代码片段,展示如何访问接口
# connections is a singleton instance of the ConnectionHandler class and serves as the
# entrypoint to access all connection management APIs.
from tortoise import connections
# Assume that this is the Tortoise configuration used
await Tortoise.init(
{
"connections": {
"default": {
"engine": "tortoise.backends.sqlite",
"credentials": {"file_path": "example.sqlite3"},
}
},
"apps": {
"events": {"models": ["__main__"], "default_connection": "default"}
},
}
)
conn: BaseDBAsyncClient = connections.get("default")
try:
await conn.execute_query('SELECT * FROM "event"')
except OperationalError:
print("Expected it to fail")
重要
tortoise.connection.ConnectionHandler 类已按照单例模式实现,因此当 ORM 初始化时,此类 tortoise.connection.connections
的单例实例将自动创建,并且在应用程序的生命周期内一直存在于内存中。在运行时修改或覆盖其行为的任何尝试都是有风险的,不建议这样做。
请参阅 此示例,了解如何在实践中使用此 API 的详细演示。
API 参考¶
- class tortoise.connection.ConnectionHandler[source]¶
- all()[source]¶
从 当前上下文 中的存储中返回连接对象列表。
- 返回类型:¶
List
[BaseDBAsyncClient
]
- property db_config : DBConfigType¶
返回数据库配置。
这是初始化时传递给
Tortoise.init
方法的相同配置。- 引发:¶
ConfigurationError – 如果在调用
Tortoise.init
方法之前访问此属性。- 返回类型:¶
DBConfigType
- discard(conn_alias)[source]¶
丢弃当前上下文中存储中的给定别名。
重要
在调用此方法之前,请确保已对提供的别名调用
conn.close()
,否则会出现连接泄漏(悬空连接)。- 返回类型:¶
Optional
[BaseDBAsyncClient
]
- get(conn_alias)[源代码]¶
返回给定别名的连接对象,如果需要,则创建它。
用于访问给定别名的底层连接对象(
BaseDBAsyncClient
)。- 参数:¶
- conn_alias¶
必须获取连接的别名
- 引发:¶
ConfigurationError – 如果连接别名不存在。
- 返回类型:¶