【问题标题】:Using pouchdb with python将 pouchdb 与 python 一起使用
【发布时间】:2012-09-03 16:57:11
【问题描述】:

我正在对使用 django 或 web2py 编写的 python 应用程序进行一些研究,并将其用作桌面应用程序。对于数据库,我将远程使用 couchdb 来实现它的复制能力。对于 dektop,我需要找到一种将 pouchdb 集成到应用程序中的方法,但是由于主页没有说要包含 pouchdb.js 文件,所以我找不到任何关于如何将它与 python 一起使用的文档。以及如何设置本地主机到远程服务器同步的一般设置。

我希望有人能阐明如何完成这项工作。至于 django/web2py,我不确定我想使用哪一个,但已将其范围缩小到这 2 个。

应用程序本身的想法是我的网站具有所有可用的正常功能。并且用户可以从安装程序将软件包本地安装到他们的桌面。该本地副本将具有来自网站的功能子集,并将本地 pouchdb 实例中的一些数据同步到远程服务器。足以在离线时与数据库完全交互。

【问题讨论】:

    标签: python django couchdb web2py pouchdb


    【解决方案1】:

    为此,我几天前创建了Python-PouchDB。它通过 PyQt4、PyQt5 或 PySide 在 QtWebKit 中运行 PouchDB(您需要将其中一个与您的应用一起发布),并提供了一个不错的(同步和异步)Python 接口。

    你可以通过执行安装它:

    pip install python-pouchdb
    

    (或者只是从您可以在网站上找到链接的源代码中提取 pouchdb 目录。)

    示例用法:

    >>> import pouchdb
    >>> environment = pouchdb.setup()
    >>> db = environment.PouchDB("test")
    >>> db.put({"_id": "mytest"})
    {u'ok': True, u'rev': u'...', u'id': u'mytest'}
    >>> db["mytest"] #shorthand for db.get()
    {u'_rev': u'...', u'_id': u'mytest'}
    >>> db.destroy()
    

    【讨论】:

      【解决方案2】:

      PouchDB 在浏览器中的 IndexedDB 上运行,未来计划支持 WebSQL,但总的来说,它建立在浏览器提供的本地数据库功能之上。

      如果我理解正确,您希望能够从 Python 访问它吗?我认为这是不可能的,虽然找到一个围绕 JavaScript 引擎的 Python 包装器可能是可能的,但您将无法访问浏览器支持的数据库。

      您还应该考虑创建一个CouchApp,尽管这仍然无法让您使用 Django 模板。

      基本上,您应该构建应用程序的方式是它只使用基于 JavaScript 的模板(Mustache、Handlebars 等)并使用 REST 接口与您的 API 交互,因此您不必运行 Python 引擎客户端离线应用程序。它可能仍然可行,但如果您必须将大量技术与您的应用程序捆绑在一起,那么下载量会很大。

      【讨论】:

      • 是的 couchapps 很酷,但我认为这不会让我拥有我的应用程序所需的基础设施水平,因为我需要一个真正的桌面客户端。我的安装程序中可能只有一个设置脚本,它为最终用户下载并设置沙发,目前还不确定。
      • Puchdb 也不起作用,因为我可能在主客户端之外很容易需要这些数据。例如,如果我们有其他外部工具来管理或监控数据库。
      • 是的,这就是我想说的,如果你想在浏览器之外访问数据库 PouchDB 不适合你。虽然你可以复制它,但你绝对不能以这种方式构建 Django 应用程序。
      猜你喜欢
      • 2014-08-14
      • 1970-01-01
      • 1970-01-01
      • 2019-03-18
      • 1970-01-01
      • 2016-05-07
      • 1970-01-01
      • 2017-03-03
      • 1970-01-01
      相关资源
      最近更新 更多