python couchdb工具包
couchdbkit的Python项目详细描述
关于
Couchdbkit为您提供了一个功能齐全且易于访问的客户端 管理couchdb。它允许您管理couchdbserver、数据库、文档 管理和视图访问。所有对象大多反映python对象 方便。例如,可以简单地使用服务器和数据库对象 就像使用听写一样。
安装
couchdbkit要求python 2.x优于2.6。
要使用pip安装couchdbkit,必须确保 已安装发行版的最新版本:
$ curl -O http://python-distribute.org/distribute_setup.py $ sudo python distribute_setup.py $ easy_install pip
安装或升级到couchdbkit的最新版本:
$ pip install couchdbkit
开始
本教程主要通过代码公开这个库的关键特性 例子。对于模块的深入描述,您将需要阅读 API文档。
编写第一个couchdb文档
from couchdbkit import Server # server object server = Server() # create database db = server.get_or_create_db("greeting") doc = {"mydoc": "test"} db.save_doc(doc)
import datetime from couchdbkit import * class Greeting(Document): author = StringProperty() content = StringProperty() date = DateTimeProperty()
储存提交的问候语
下面是在Greeting数据库上保存问候语的代码。我们还将了解如何创建数据库:
from couchdbkit import Server # associate Greeting to the db Greeting.set_db(db) # create a new greet greet = Greeting( author="Benoit", content="Welcome to couchdbkit world", date=datetime.datetime.utcnow() ) # save it greet.save()
注意
您只需使用db对象来保存架构:db.save(greet)。
您的文档greet现在位于greetingsdb中。每份文件 与doc_type字段一起保存,该字段允许您轻松查找每个 有视图的文档。默认情况下,doc_type是 全班同学。
现在您保存了文档,您可以更新它:
greet.author = u"Benoit Chesneau" greet.save()
这里我们更新了作者姓名。
动态特性
嗯,好吧,但是couchdb存储文档的模式不是更少吗?你想不想 添加属性?简单:
greet.homepage = "http://www.e-engura.org" greet.save()
现在您刚刚向文档添加了一个主页属性。
获得所有问候
首先必须创建一个视图并将其保存在数据库中。我们称之为 greeting/all。为此,我们将使用couchdbkit的加载程序系统 它允许您将视图发送到couchdb。
让我们创建一个包含设计文档的文件夹,然后 为了看风景。在Unix上:
mkdir -p ~/Work/couchdbkit/example/_design/greeting/views/all
在此文件夹中,我们编辑一个文件map.js:
function(doc) { if (doc.doc_type == "Greeting") emit(doc._id, doc); } }
这是一个文件夹结构:
/Work/couchdbkit/example/: --_design/ ---- greetings ------ view
这是一张截图:
将提供一个系统来管理视图创建和其他事情。作为 有人注意到,这个系统的工作方式类似于couchapp,并且 兼容的。
然后我们使用push函数将设计文档发送到couchdb:
from couchdbkit.designer import push push('/path/to/example/_design/greetings', db)
设计文档现在位于greetings数据库中,您可以获取 问候语:
greets = Greeting.view('greeting/all')