【问题标题】:Language/Framework support for Interacting With CouchDB与 CouchDB 交互的语言/框架支持
【发布时间】:2010-10-27 17:26:39
【问题描述】:

我想知道是否有任何服务器端 Web 应用程序框架可以与 CouchDB 很好地集成?有没有人有这方面的经验?动态语言似乎非常适合使用 JSON,但我更感兴趣的是了解它如何适应框架和应用程序的设计。

【问题讨论】:

    标签: database web-applications frameworks couchdb


    【解决方案1】:

    我建议用于 CouchDB 的两个框架是 Ruby on Rails 和 Django。两者都有一个可以包含的小文件,以便与 CouchDB 轻松交互。对于 Ruby/Rails,这使您能够编写如下所示的代码 (code snippets yanked from here):

    # Create the database
    server = Couch::Server.new("localhost", "5984")
    server.put("/foo/", "")
    
    # Insert a new document into the database
    doc = <<-JSON
    {"type":"comment","body":"First Post!"}
    JSON
    server.put("/foo/document_id", doc)
    
    # Get the document back later
    res = server.get("/foo/document_id")
    json = res.body
    puts json
    

    Python/Django 让您可以用相对最少的工作量来做同样的事情 (see here)。这两者都不是在 web 框架级别,但它们需要最少的工作量来设置,并且在 Rails 和 Django 中很容易上手。 Django 方法仍然需要安装一些包,所以如果您由于某种原因不能这样做,那么 Rails 方法是可行的方法。

    另一个关于 Django 上 Python 的好方法可以在 here 找到(也来自 CouchDB 常见问题解答)。

    【讨论】:

    • 你会如何使用django用户系统和认证、授权? - 这取决于依赖于 sql 的 django 模型。
    【解决方案2】:

    目前唯一致力于 CouchDB 的 Web 框架是 CouchDBKit for Python。

    查看官方 wiki 页面,其中列出了如何开始使用您的语言:

    http://wiki.apache.org/couchdb/Basics

    选择最适合您的语言和框架,然后使用其中一个轻量级的 CouchDB 库。

    目前看来,CouchDB 的进展非常迅速。我相信很快就会有更多的框架支持 CouchDB。我目前正在考虑为 PHP 构建一个。

    【讨论】:

      【解决方案3】:

      我在 Java 的 jcouchdb 和 JavaScript 的 CouchApp 以及 Python 的 CouchDBKit 方面取得了很好的成功。所有这些都是积极开发的、开源的、精心设计的,如果缺少你真正需要的东西,它们也很容易增强。我已经为 jcouchdb 和 couchapp 提交了补丁和功能增强。

      【讨论】:

        【解决方案4】:

        其实,你并不真的需要这样的框架。相反,您可以在 CouchDB 中编写整个 Web 应用程序。它允许您生成 HTML 文件或任何其他 XML 派生格式,您甚至可以使用 HTML 模板。我认为这是一个不错的选择,因为 JavaScript 是一种丰富而灵活的语言。另一方面,您不必在数据库和 Web 应用程序之间建立连接。

        更多详情,请查看:http://books.couchdb.org/relax/design-documents/shows

        还有一个相关的问题:Using CouchDB to serve HTML

        【讨论】:

          【解决方案5】:

          根据您想要构建的 CouchApp 可能需要查看:它专为使用 CouchDB 编写应用程序而设计:

          https://github.com/jchris/couchapp/wiki/manual

          【讨论】:

            猜你喜欢
            • 2011-04-25
            • 2014-05-03
            • 2015-08-22
            • 2013-09-28
            • 2012-10-04
            • 2011-04-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多