为什么使用TinyDB?
TinyDB中有1200(40%文件)的代码行(+ 600次测试)。比较:buzhug大约有2000行代码(W / O测试),codernitydb大约有8000行代码(W / O试验)。
面向文件:如MongoDB,您可以存储任何文件(表示为dict)在TinyDB。
为了你的幸福,优化:TinyDB的设计是简单的和有趣的使用提供了一个简单和干净的API。
用纯Python:TinyDB既不需要一个外部服务器(例如pymongo)也没有任何依赖从PyPI。
在Python 3.4和2.6–PyPy的作品:TinyDB作品对Python和PyPy所有现代版本。
易扩展:你可以很容易地扩展TinyDB编写新存储或者修改存储中间件的行为。
近100%的测试覆盖率:如果你不算__repr__方法和一些抽象方法都没有测试,TinyDB有100%的测试覆盖率。
总之:如果你需要一个简单的数据库,用干净的API,只是没有很多的配置,TinyDB可能是你正确的选择。
为什么不使用TinyDB?
你需要一些相关的功能,比如http api 和rpc。
你是真的关心和需要高性能高速数据库。
坦率地说:如果你需要先进的功能或性能,TinyDBjiu –考虑使用数据库像buzhug,codernitydb或MongoDB
安装Tinydb数据库
$ pip install tinydb
>>> from tinydb import TinyDB, where
>>> db = TinyDB('db.json')
>>> db.insert({'type': 'apple', 'count': 7})
1
>>> db.insert({'type': 'peach', 'count': 3})
2
Note
>>> db.all()
[{'count': 7, 'type': 'apple'}, {'count': 3, 'type': 'peach'}]
>>> db.search(where('type') == 'peach')
[{'count': 3, 'type': 'peach'}]
>>> db.search(where('count') > 5)
[{'count': 7, 'type': 'apple'}]
>>> db.update({'count': 10}, where('type') == 'apple')
>>> db.all()
[{'count': 10, 'type': 'apple'}, {'count': 3, 'type': 'peach'}]
>>> db.remove(where('count') < 5)
>>> db.all()
[{'count': 10, 'type': 'apple'}]
>>> db.purge()
>>> db.all()
[]
这也太搓蛋了,直接就存入的json文件,你最少来个pickle 或者是msgpack呀 ~ 提供的api使用起来是挺方便,读取的性能也还算可以,但是写入的速度着实太慢了。 有兴趣的朋友可以试试 CodernityDB ,这也是个有趣的东西。
大家觉得文章对你有些作用!
如果想赏钱,可以用微信扫描下面的二维码,感谢!
另外再次标注博客原地址 xiaorui.cc