这篇文章主要介绍“TinyDB轻量级数据库怎么使用”,在日常操作中,相信很多人在TinyDB轻量级数据库怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”TinyDB轻量级数据库怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
TinyDB 是一个纯 Python 编写的轻量级数据库,一共只有1800行代码,没有外部依赖项。
TinyDB的目标是降低小型 Python 应用程序使用数据库的难度,对于一些简单程序而言与其用 SQL 数据库,不如就用TinyDB, 因为它有如下特点:
轻便:当前源代码有 1800 行代码(大约 40% 的文档)和 1600 行测试代码。
可随意迁移:在当前文件夹下生成数据库文件,不需要任何服务,可以随意迁移。
简单:TinyDB 通过提供简单干净的 API 使得用户易于使用。
用纯 Python 编写: TinyDB 既不需要外部服务器,也不需要任何来自 PyPI 的依赖项。
适用于 Python 3.6+ 和 PyPy3: TinyDB 适用于所有现代版本的 Python 和 PyPy。
强大的可扩展性:您可以通过编写中间件修改存储的行为来轻松扩展 TinyDB。
100% 测试覆盖率:无需解释。
开始之前,你要确保Python和pip已经成功安装在电脑上。
1. Windows 环境 打开 Cmd (开始-运行-CMD)。
2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install tinydb
初始化一个DB文件:
from tinydb import TinyDB db = TinyDB('db.json')
这样就在当前文件夹下生成了一个名为 `db.json` 的数据库文件。
往里面插入数据:
from tinydb import TinyDB db = 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} for i in range(2))
查询所有数据:
from tinydb import TinyDB db = TinyDB('db.json') db.all() # [{'count': 7, 'type': 'apple'}, {'count': 3, 'type': 'peach'}]
除了 .all() 我们还可以使用for循环遍历db:
from tinydb import TinyDB db = TinyDB('db.json') for item in db: print(item) # {'count': 7, 'type': 'apple'} # {'count': 3, 'type': 'peach'}
如果你需要搜索特定数据,可以使用Query():
from tinydb import TinyDB db = TinyDB('db.json') Fruit = Query() db.search(Fruit.type == 'peach') # [{'count': 3, 'type': 'peach'}] db.search(Fruit.count > 5) # [{'count': 7, 'type': 'apple'}]
更新数据:
from tinydb import TinyDB db = TinyDB('db.json') db.update({'foo': 'bar'}) # 删除某个Key from tinydb.operations import delete db.update(delete('key1'), User.name == 'John')
删除数据:
删除数据也可以使用类似的条件语句:
from tinydb import TinyDB db = TinyDB('db.json') db.remove(Fruit.count < 5) db.all() # [{'count': 10, 'type': 'apple'}]
清空整个数据库:
from tinydb import TinyDB db = TinyDB('db.json') db.truncate() db.all() # []
除了点操作符访问数据,你还可以用原生的dict访问表示法:
# 写法1 db.search(User.country-code == 'foo') # 写法2 db.search(User['country-code'] == 'foo')
这两种写法是等效的。
另外在常见的查询运算符(==, <,>, ...)之外,TinyDB还支持where语句:
from tinydb import where db.search(where('field') == 'value')
这等同于:
db.search(Query()['field'] == 'value')
这种语法还能访问嵌套字段:
db.search(where('birthday').year == 1900) # 或者 db.search(where('birthday')['year'] == 1900)
Any 查询方法:
db.search(Group.permissions.any(Permission.type == 'read')) # [{'name': 'user', 'permissions': [{'type': 'read'}]}, # {'name': 'sudo', 'permissions': [{'type': 'read'}, {'type': 'sudo'}]}, # {'name': 'admin', 'permissions': # [{'type': 'read'}, {'type': 'write'}, {'type': 'sudo'}]}]
检查单个项目是否包含在列表中:
db.search(User.name.one_of(['jane', 'john']))
TinyDB还支持和Pandas类似的逻辑操作:
# Negate a query: db.search(~ (User.name == 'John')) # Logical AND: db.search((User.name == 'John') & (User.age <= 30)) # Logical OR: db.search((User.name == 'John') | (User.name == 'Bob'))
到此,关于“TinyDB轻量级数据库怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。