跳到主要内容

📋️ DBRecorder


DBRecorder用于记录数据到数据库,用法与Recorder一致。支持 sqlite,文件格式为'db'

它可自动创建数据库文件、表、列,使用时无须事先创建数据库。

写入文件、备份文件、参数设置等功能与Recorder一致,请查看Recorder相关章节。

✅️ 创建对象

初始化参数类型默认值说明
pathstr
Path
None文件路径,若不存在会自动创建,如存在则在最后追加数据
cache_sizeintNone缓存数据条数,为0时不自动记录数据
tablestrNone表名称,为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语句并返回结果。

参数名称类型默认值说明
sqlstr必填sql 语句
singleboolTrue是否只获取一个结果
commitboolFalse是否提交到数据库
返回类型说明
tuplesingleTrue时返回tuple
listsingleFalse时返回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) # [('张三', '男'), ('李四', '男')]