TinyDB轻量级数据库有哪些特点呢

网友投稿 994 2023-04-16

TinyDB轻量级数据库有哪些特点呢

TinyDB轻量级数据库有哪些特点呢

TinyDB的目标是降低小型 Python 应用程序使用数据库的难度,对于一些简单程序而言与其用 SQL 数据库,不如就用TinyDB, 因为它有如下特点:

轻便:当前源代码有 1800 行代码(大约 40% 的文档)和 1600 行测试代码。

可随意迁移:在当前文件夹下生成数据库文件,不需要任何服务,可以随意迁移。

用纯 Python 编写:TinyDB 既不需要外部服务器,也不需要任何来自 PyPI 的依赖项。

适用于 Python 3.6+ 和 PyPy3:TinyDB 适用于所有现代版本的 Python 和 PyPy。

强大的可扩展性:您可以通过编写中间件修改存储的行为来轻松扩展 TinyDB。

100% 测试覆盖率:无需解释。

1.准备

开始之前,需要先安装它

pip installtinydb

2.简单的增删改查示例

初始化一个DB文件:

fromtinydb importTinyDBdb = TinyDB('db.json')

这样就在当前文件夹下生成了一个名为 `db.json` 的数据库文件。

往里面插入数据:

fromtinydb importTinyDBdb = TinyDB('db.json')db.insert({'type': 'apple', 'count': 7})db.insert({'type': 'peach', 'count': 3})

可以看到,我们可以直接往数据库里插入字典数据,不需要任何处理。下面是批量插入的方法:

db.insert_multiple([{'name': 'John', 'age': 22},{'name': 'John', 'age': 37}])db.insert_multiple({'int': 1, 'value': i} fori inrange(2))

查询所有数据:

fromtinydb importTinyDBdb = TinyDB('db.json')db.all()# [{'count': 7, 'type': 'apple'}, {'count': 3, 'type': 'peach'}]

除了 .all() 我们还可以使用for循环遍历db:

如果你需要

搜索特定数据

,可以使用Query():

fromtinydb importTinyDBdb = TinyDB('db.json')Fruit = Query()db.search(Fruit.type == 'peach')# [{'count': 3, 'type': 'peach'}]db.search(Fruit.count > 5)# [{'count': 7, 'type': 'apple'}]

更新数据:

fromtinydb importTinyDBdb = TinyDB('db.json')db.update({'foo': 'bar'})# 删除某个Keyfromtinydb.operations importdeletedb.update(delete('key1'), User.name == 'John')

删除数据

删除数据也可以使用类似的条件语句:

fromtinydb importTinyDBdb = TinyDB('db.json')db.remove(Fruit.count < 5)db.all()# [{'count': 10, 'type': 'apple'}]

清空整个数据库:

fromtinydb importTinyDBdb = TinyDB('db.json')db.truncate()db.all()# []

3.高级查询

除了点操作符访问数据,你还可以用原生的dict访问表示法:

# 写法1db.search(User.country-code == 'foo')# 写法2db.search(User['country-code'] == 'foo')

这两种写法是等效的。

另外在常见的查询运算符(==, <, >, ...)之外,TinyDB还支持where语句:

fromtinydb importwheredb.search(where('field') == 'value')

这等同于:

db.search(Query()['field'] == 'value')

这种语法还能访问嵌套字段:

db.search(where('birthday').year == 1900)# 或者db.search(where('birthday')['year'] == 1900)

Any 查询方法:

检查单个项目是否包含在列表中:

db.search(User.name.one_of(['jane', 'john']))

TinyDB还支持和Pandas类似的逻辑操作:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:数据库的发展历史分为哪几个阶段_各有什么特点
下一篇:区块链是ID数据库保护的最佳方案吗
相关文章