Skip to content

🐨 DBRecorder

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

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

🐘 创建对象

创建对象时,如指定了数据库文件路径,且没有传入table参数,会自动指定第一个数据表名称。

初始化参数 类型 默认值 说明
path str
Path
None 文件路径,若不存在会自动创建,如存在则在最后追加数据
cache_size int None 缓存数据条数,为0时不自动记录数据
table str None 默认表名称

示例:

from DataRecorder imoprt DBRecorder

d = DBRecorder(path='data.db', cache_size=500, table='table1')

➕ 添加数据

使用add_data()添加数据,用法与Recorder基本一致,下面只展示不一样的地方。

✔ 指定默认表

可以对DBRecorder对象设置默认表,每条数据都会添加到该表。

from DataRecorder import DBRecorder

d = DBRecorder(path='data.db', table='user')  # 声明时指定
# 或
d = DBRecorder(path='data.db')
d.table = 'user'  # 对对象赋值

✔ 每条数据指定表

也可以在每次添加数据时指定表名。

from  DataRecorder import DBRecorder

d = DBRecorder(path='data.db')
d.add_data({'name':'张三', 'age':20}, table='user1')
d.add_data({'name':'李四', 'age':25}, table='user2')
d.record()

✔ 数据格式

Recorder一样,DBRecorder也支持灵活的数据格式,但推荐使用dict格式。

如上面的示例,dict格式可以为不同列指定数据。如果不存在该列,程序会自动创建。

如果使用其它格式,则会从左到右按顺序填入到表的列里。

接收tuple格式数据:

from  DataRecorder import DBRecorder

d = DBRecorder(path='data.db', table='user')
d.add_data(('张三', 20))
d.record()

注意

如果是新的 db 文件,第一次录入数据必须用dict格式,以便程序自动创建列。


✔ 接收多行数据

DBRecorder也可以接收二维数据,并逐行添加到指定表中。

d.add_data(({'name':'张三', 'age':20}, 
            {'name':'李四', 'age':25}), table='user')  # 接收多个dict

💾 写入文件

这部分内容与Recorder一致。详见该章节。


🗂️ 备份文件

这部分内容与Recorder一致。同样支持自动备份和手动备份。


♾️ DBRecorder 对象的方法

📌 add_data()

此方法用于添加数据到缓存,可接收一个、一行或多行数据。

参数名称 类型 默认值 说明
data Any 必填 可接收任意格式,接收一维listtupledict时记录为一行,接收二维数据时记录为多行
table str None 数据要添加到的表名

返回:None


📌 run_sql()

此方法用于执行sql语句并返回结果。

参数名称 类型 默认值 说明
sql str 必填 sql 语句
single bool True 查询时是否只获取一个结果
commit bool False 是否提交到数据集
返回类型 说明
tuple
list
多个结果时返回list,单个结果时返回tuple
None 没有结果时返回None

📌 record()

此方法用于把数据记录到文件,然后清空缓存。

参数:

返回类型 说明
str 文件路径

📌 backup()

此方法用于当前记录的文件保存一份副本。

参数名称 类型 默认值 说明
path str
Path
'backup' 文件夹路径,默认保存到当前路径下'backup'文件夹
name str None 保存的文件名,可不包括扩展名,为None使用记录目标指定的文件名
返回类型 说明
str 文件路径

📌 clear()

此方法用于清空现有缓存。

参数:无

返回:None


⚙️ DBRecorder 对象参数设置

DBRecorder对象的设置使用set.****()的方式进行。

可进行链式操作,如set.fit_head().cache_size(30)

📌 set.path()

此方法用于设置文件路径。如不指定table,会自动获取数据库第一个数据表名称。

更改时会自动保存缓存数据到文件。

参数名称 类型 默认值 说明
path str
Path
必填 文件路径
table str None 数据表名称

返回: 当前设置对象


📌 set.cache_size()

此方法用于设置缓存大小,指定采集多少条自动记录到文件,为0时不自动记录。

参数名称 类型 默认值 说明
size int 必填 缓存数据条数

返回: 当前设置对象


📌 set.auto_backup()

此方法用于设置自动备份相关参数。

参数名称 类型 默认值 说明
interval int None 自动保存多少次时触发备份,为0表示不自动备份,为None时不修改已设置值(初始为0)
path str
Path
None 备份文件存放路径,为None时不修改已设置值(初始为'backup'
new_name bool None 是否用新名称备份,为None时不修改已设置值(初始为True

返回: 当前设置对象


📌 set.table()

此方法用于处理 xlsx 文件时指定数据表。

参数名称 类型 默认值 说明
name str 必填 数据表名称

返回: 当前设置对象


📌 set.before()

此方法用于设置对象before参数内容,设置前会先保存缓存数据。

before内容的用法将在 “进阶用法” 章节说明。

参数名称 类型 默认值 说明
before Any 必填 每行数据前要添加的内容,单个数据或列表数据皆可

返回: 当前设置对象


📌 set.after()

此方法用于设置对象after参数内容,设置前会先保存缓存数据。

after内容的用法将在 “进阶用法” 章节说明。

参数名称 类型 默认值 说明
after Any 必填 每行数据后要添加的内容,单个数据或列表数据皆可

返回: 当前设置对象


📌 set.encoding()

此方法用于设置编码格式。

参数名称 类型 默认值 说明
encoding str 必填 编码名称

返回: 当前设置对象


📌 set.show_msg()

此方法用于设置是否显示运行信息。

参数名称 类型 默认值 说明
on_off bool 必填 bool类型表示开或关

返回: 当前设置对象


🔣 DBRecorder 对象的属性

📌 path

此属性以字符串方式返回当前记录的文件路径。可赋值设置。更改时会自动保存缓存数据到文件。

类型:str


📌 data

此属性返回当前保存在缓存里的数据。

类型:dict


📌 cache_size

此属性返回缓存的大小,表示记录的条数。

类型:int


📌 table

此属性返回当前处理的数据表。

类型:str


📌 encoding

此属性返回当前文件的编码方式,默认为'utf-8',可赋值设置。

类型:str


📌 before

此属性返回当前对象设置的before内容,before参数内容的用法将在 “进阶用法” 章节说明。

类型:Any


📌 after

此属性返回当前对象设置的after内容,after参数内容的用法将在 “进阶用法” 章节说明。

类型:Any


📌 show_msg

此属性用于设置是否打印程序运行时产生的提示信息。

类型:bool