我应该使用哪个Python客户端库来连接CouchDB?
我开始尝试使用CouchDB,因为它看起来是解决我们某些问题的完美方案。考虑到所有工作都将在一个全新的项目上进行,没有旧的依赖关系,你会建议我使用哪个客户端库,为什么?
如果我们使用的操作系统有一些重叠,那就简单多了。FreeBSD的端口库中只有py-simplecouchdb可用,但那个库的项目网站建议使用CouchDBKit。而这两个库在Ubuntu上都没有,Ubuntu只提供CouchDB。由于这两个操作系统没有共同的库,我可能会从源代码安装一些东西(如果有时间的话,还希望能把包提交给Ubuntu和FreeBSD的开发者)。
对于感兴趣的人,我想把CouchDB用作在各种服务之间传递数据的方便中间存储地——可以想象成一个消息总线系统,但不那么正式。例如,我们有一些守护进程,它们下载和解析网页,然后把有趣的部分发送给其他守护进程进行进一步处理。很多对象在运行时才会被定义(“这里有一些HTML,还有一组元数据,以及一些要执行的操作”)。与其把它序列化成一个临时的本地网络协议,或者放进PostgreSQL,我更愿意使用一些专门为此设计的东西。我们目前在这个角色中使用NetWorkSpaces,但它的支持范围和用户社区远不如CouchDB。
6 个回答
spycouch
简单的 Python 接口,用于 CouchDB
这是一个 Python 库,可以轻松管理 CouchDB 数据库。
和网上其他常见的库相比,它支持最新版本的 CouchDB - 1.2.1。
功能
在服务器上创建一个新的数据库
从服务器删除一个数据库
列出服务器上的所有数据库
查看数据库信息
对数据库进行压缩
创建地图视图
查看地图视图
列出数据库中的文档
从数据库获取文档
将文档保存到数据库
从数据库删除文档
编辑文档
关于 spycouch 的更多信息请访问 >> https://github.com/cernyjan/repository
如果你还在考虑使用CouchDB的话,我推荐你试试Couchdbkit(http://www.couchdbkit.org)。这个工具简单易用,能让你很快上手,而且在我使用的Karmic Koala系统上运行得很好。在此之前,我试过couchdb-python,但因为httplib的一些bug(可能现在已经修复了)让我遇到了一些错误(比如重复的文档等等),不过Couchdbkit让我顺利地开始使用,没有遇到什么问题。
我一直在使用couchdb-python,效果非常不错。根据我所知,desktopcouch的开发者们也在Ubuntu系统中使用这个工具。使用这个工具的前提条件非常简单,你应该不会遇到什么问题:
- httplib2
- simplejson或cjson
- Python
- CouchDB 0.9.x(早期或更高版本可能不太适用,因为接口还在不断变化)
对我来说,这个工具的一些优点包括:
- 使用Python的方式来操作数据库,就像使用字典一样简单。
- 可以处理设计文档的接口。
- 有一个CouchDB视图服务器,允许你用Python编写视图函数。
它还提供了一些命令行工具:
- couchdb-dump:可以写出CouchDB数据库的快照。
- couchdb-load:可以读取couchdb-dump生成的MIME多部分文件,并将所有文档、附件和设计文档加载到CouchDB数据库中。
- couchdb-replicate:可以作为更新通知脚本,当数据发生变化时触发数据库之间的复制。