到标准 sqlite3 模块的异步桥接
项目描述
aiosqlite 为 sqlite 数据库提供了一个友好的异步接口。
它复制了标准sqlite3模块,但具有所有标准连接和游标方法的异步版本,以及用于自动关闭连接和游标的上下文管理器:
async with aiosqlite.connect(...) as db:
await db.execute("INSERT INTO some_table ...")
await db.commit()
async with db.execute("SELECT * FROM some_table") as cursor:
async for row in cursor:
...
它也可以以传统的程序方式使用:
db = await aiosqlite.connect(...)
cursor = await db.execute('SELECT * FROM some_table')
row = await cursor.fetchone()
rows = await cursor.fetchall()
await cursor.close()
await db.close()
aiosqlite 还复制了sqlite3的大多数高级功能:
async with aiosqlite.connect(...) as db:
db.row_factory = aiosqlite.Row
async with db.execute('SELECT * FROM some_table') as cursor:
async for row in cursor:
value = row['column']
await db.execute('INSERT INTO foo some_table')
assert db.total_changes > 0
安装
aiosqlite 与 Python 3.6 和更新版本兼容。您可以从 PyPI 安装它:
$ pip install aiosqlite
细节
aiosqlite 允许在主 AsyncIO 事件循环上与 SQLite 数据库交互,而不会在等待查询或数据获取时阻塞其他协程的执行。它通过为每个连接使用单个共享线程来做到这一点。该线程执行共享请求队列中的所有操作,以防止操作重叠。
连接对象是真实连接的代理,包含共享执行线程,并提供上下文管理器来处理自动关闭的连接。游标类似于真实游标的代理,并提供异步迭代器来查询结果。
执照
aiosqlite 是John Reese的版权,并在 MIT 许可下获得许可。我根据开源许可向您提供此存储库中的代码。这是我的个人存储库;您收到的我的代码许可证来自我,而不是来自我的雇主。有关详细信息,请参阅许可证文件。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
aiosqlite-0.17.0.tar.gz
(25.9 kB
查看哈希)
内置分布
aiosqlite-0.17.0-py3-none-any.whl
(15.4 kB
查看哈希)