各种有趣和有用的功能
您需要导入 apsw.ext 使用此模块。 dataclasses
,并且仅支持Python3.7+。
漂亮的印刷品
format_query_table()
生成格式良好的查询输出-请参阅 the example 。
记录和回溯
您可以使用 log_sqlite()
将SQLite日志消息转发到 logging
模块。
print_augmented_traceback()
以常规方式打印异常,但也包括局部变量,该变量 APSW includes 以使调试更快、更容易。
虚拟表格
使用 index_info_to_dict()
得到 apsw.IndexInfo
以一种更易于打印和处理的格式。
使用 make_virtual_module()
轻松地将一个Python函数转换为一个虚拟表源。
generate_series()
和 generate_series_sqlite()
提供 generate_series 。
按列名访问结果行
看见 the example 。
使用 apsw.ext.DataClassRowFactory
作为一名 apsw.Connection.rowtrace
对于整个连接,或 apsw.Cursor.rowtrace
用于特定的游标。
将类型转换为SQLite或从SQLite中转换
SQLite仅存储和返回5种类型:
无
集成
浮动
应力
字节数
使用 TypesConverterCursorFactory
AS apsw.Connection.cursor_factory
调整进入SQLite的值,并将其转换出来。看见 the example 。
要将值转换为SQLite,请执行以下任一操作:
继承自
apsw.ext.SQLiteTypeAdapter
并定义一个 to_sqlite_value 类上的方法打电话
TypesConverterCursorFactory.register_adapter()
具有类型和适配器功能的
要适应来自SQLite的值,请执行以下操作:
打电话
TypesConverterCursorFactory.register_converter()
具有表中的确切类型字符串和一个转换器函数
详细查询信息
SQLite可以提供大量有关查询的信息。这个 query_info()
函数可以为您收集它们。这包括:
readonly 如果查询没有进行直接更改
first_query 如果提供多个查询
actions 引用了哪些数据库、表、列、函数、视图等-请参阅 actions
query_plan 使用哪些索引、表扫描等来查找查询结果-请参阅 query plans
explain 有关在SQLite中执行的低级别步骤,请参见 SQLite bytecode
看见 the example 。