python couchdb工具包

couchdbkit的Python项目详细描述


关于

Couchdbkit为您提供了一个功能齐全且易于访问的客户端 管理couchdb。它允许您管理couchdbserver、数据库、文档 管理和视图访问。所有对象大多反映python对象 方便。例如,可以简单地使用服务器和数据库对象 就像使用听写一样。

Build Status

安装

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

这是一张截图:

http://couchdbkit.org/images/gettingstarted.png

将提供一个系统来管理视图创建和其他事情。作为 有人注意到,这个系统的工作方式类似于couchapp,并且 兼容的。

然后我们使用push函数将设计文档发送到couchdb:

from couchdbkit.designer import push
push('/path/to/example/_design/greetings', db)

设计文档现在位于greetings数据库中,您可以获取 问候语:

greets = Greeting.view('greeting/all')

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
并行处理java。util。同时发生的叉子在游泳池里。常见的并行性准则,用于选择正确的并行度大小   java如何将空白字符追加到指定长度?   安卓应用程序中出现错误,SSLHandshakeException,找不到证书路径的信任锚点   java如何使用JUnit Mockito验证检查方法是否未被调用   java如何使用不同的@RequestMapping解析多个控制器中的静态页面   Selenium中的javascript需要验证搜索结果   访问数据库SQLiteopenHelper方法时java应用程序崩溃(nullpointerexception)   在二叉树中验证最小堆时出现java空指针异常   Java 7的SSL连接失败   java用RestEasyWebTarget替换ProxyFactory不起作用   在Java应用程序中单击“否”按钮后,数组程序冻结(无响应)   数组中的前缀Java初学者前进和   Java HTML解析器,包括脚本标记和LineNumberReader   在java中为长类型数字加前导零   正则表达式无法映射正则表达式java。lang.IllegalArgumentException:模式段中捕获组的数量