python——TinyDB
TinyDB 是一个轻量级的纯 Python 写入的文档数据库。它不需要单独的服务器进程或复杂的配置,只需导入模块即可开始使用。TinyDB 适合于小型项目或测试用例,它的数据存储在本地文件中。
TinyDB 的基本 API 和使用方式:
-
初始化数据库
from tinydb import TinyDBdb = TinyDB('db.json')
这将创建一个数据库实例,并指定数据存储的文件名。如果文件不存在,TinyDB 将自动创建它。
-
插入数据
db.insert({'name': 'John', 'age': 30})
这将向数据库中插入一条记录。
-
查询数据
TinyDB 使用 Query 对象来构建查询语句:from tinydb import QueryPerson = Query() result = db.search(Person.name == 'John') print(result)
这将返回所有 name 字段等于 ‘John’ 的记录。
-
更新数据
db.update({'age': 31}, Person.name == 'John')
这将更新所有 name 字段等于 ‘John’ 的记录中的 age 字段为 31。
-
删除数据
db.remove(Person.name == 'John')
这将删除所有 name 字段等于 ‘John’ 的记录。
-
获取所有数据
all_data = db.all()
-
排序数据
sorted_data = db.search(Person.age.exists()).sort(key=lambda item: item['age'])
-
索引和存储类型
TinyDB 提供了storage
参数来更改数据的存储方式,以及default_table
参数来设置默认表名。 -
中间件
TinyDB 支持中间件,可以用来扩展其功能,例如添加缓存。
示例代码:
from tinydb import TinyDB, Query# 初始化数据库
db = TinyDB('db.json')# 插入数据
db.insert({'name': 'Alice', 'age': 25})
db.insert({'name': 'Bob', 'age': 30})# 查询数据
Person = Query()
result = db.search(Person.age > 25)
print(result) # 输出满足条件的记录# 更新数据
db.update({'age': 31}, Person.name == 'Bob')# 删除数据
db.remove(Person.name == 'Alice')# 关闭数据库
db.close()
请注意,TinyDB 不是一个生产级别的数据库系统,对于大规模数据或高并发访问的应用,可能需要考虑更健壮的解决方案,如 MongoDB 或 PostgreSQL。但是,对于简单的应用或快速原型设计,TinyDB 是一个很好的选择。