📋️ DBRecorder
DBRecorder
用 于记录数据到数据库,用法与Recorder
一致。支持 sqlite,文件格式为'db'
。
它可自动创建数据库文件、表、列,使用时无须事先创建数据库。
写入文件、备份文件、参数设置等功能与Recorder
一致,请查看Recorder
相关章节。
✅️ 创建对象
初始化参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
path | str Path | None | 文件路径,若不存在会自动创建,如存在则在最后追加数据 |
cache_size | int | None | 缓存数据条数,为0 时不自动记录数据 |
table | str | None | 表名称,为None 自动选择第一个 |
示例:
from DrissionRecord import DBRecorder
d = DBRecorder(path='data.db', cache_size=500, table='table1')
✅️ 添加数据
与Recorder
一样,DBRecorder
也支持灵活的数据格式。
使用dict
格式时会自动匹配表头,如果数据中存在表头没有的列,程序会自动创建。
如果使用其它格式,则会从左到右按顺序填入到表的列里。
注意
如果是新的 db 文件,第一次录入数据必须用dict
格式,以便程序自动创建列。
💡 接收tuple
格式数据:
from DrissionRecord import DBRecorder
d = DBRecorder(path='data.db', table='user')
d.add_data(('张三', 20))
d.record()
💡 接收多行数据
DBRecorder
也可以接收二维数据,并逐行添加到指定表中。
from DrissionRecord import DBRecorder
d = DBRecorder(path='data.db', table='user')
d.add_data(({'name':'张三', 'age':20},
{'name':'李四', 'age':25}), table='user') # 接收多个dict
✅️ 执行 sql 语句
💡 run_sql()
此方法用于执行sql语句并返回结果。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
sql | str | 必填 | sql 语句 |
single | bool | True | 是否只获取一个结果 |
commit | bool | False | 是否提交到数据库 |
返回类型 | 说明 |
---|---|
tuple | single 为True 时返回tuple |
list | single 为False 时返回list |
None | 没有结果时返回None |
from DrissionRecord import DBRecorder
d = DBRecorder('tmp\\data.db', table='user')
d.add_data({'姓名': '张三', '性别': '男'})
d.add_data({'姓名': '李四', '性别': '男'})
d.record()
r = d.run_sql('select * from user', single=True)
print(r) # ('张三', '男')
r = d.run_sql('select * from user', single=False)
print(r) # [('张三', '男'), ('李四', '男')]