我应该使用哪个Python客户端库来连接CouchDB?

18 投票
6 回答
7749 浏览
提问于 2025-04-15 15:13

我开始尝试使用CouchDB,因为它看起来是解决我们某些问题的完美方案。考虑到所有工作都将在一个全新的项目上进行,没有旧的依赖关系,你会建议我使用哪个客户端库,为什么?

如果我们使用的操作系统有一些重叠,那就简单多了。FreeBSD的端口库中只有py-simplecouchdb可用,但那个库的项目网站建议使用CouchDBKit。而这两个库在Ubuntu上都没有,Ubuntu只提供CouchDB。由于这两个操作系统没有共同的库,我可能会从源代码安装一些东西(如果有时间的话,还希望能把包提交给Ubuntu和FreeBSD的开发者)。

对于感兴趣的人,我想把CouchDB用作在各种服务之间传递数据的方便中间存储地——可以想象成一个消息总线系统,但不那么正式。例如,我们有一些守护进程,它们下载和解析网页,然后把有趣的部分发送给其他守护进程进行进一步处理。很多对象在运行时才会被定义(“这里有一些HTML,还有一组元数据,以及一些要执行的操作”)。与其把它序列化成一个临时的本地网络协议,或者放进PostgreSQL,我更愿意使用一些专门为此设计的东西。我们目前在这个角色中使用NetWorkSpaces,但它的支持范围和用户社区远不如CouchDB。

6 个回答

1

spycouch

简单的 Python 接口,用于 CouchDB

这是一个 Python 库,可以轻松管理 CouchDB 数据库。

和网上其他常见的库相比,它支持最新版本的 CouchDB - 1.2.1。

功能

在服务器上创建一个新的数据库

从服务器删除一个数据库

列出服务器上的所有数据库

查看数据库信息

对数据库进行压缩

创建地图视图

查看地图视图

列出数据库中的文档

从数据库获取文档

将文档保存到数据库

从数据库删除文档

编辑文档

关于 spycouch 的更多信息请访问 >> https://github.com/cernyjan/repository

2

如果你还在考虑使用CouchDB的话,我推荐你试试Couchdbkit(http://www.couchdbkit.org)。这个工具简单易用,能让你很快上手,而且在我使用的Karmic Koala系统上运行得很好。在此之前,我试过couchdb-python,但因为httplib的一些bug(可能现在已经修复了)让我遇到了一些错误(比如重复的文档等等),不过Couchdbkit让我顺利地开始使用,没有遇到什么问题。

5

我一直在使用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:可以作为更新通知脚本,当数据发生变化时触发数据库之间的复制。

撰写回答