1

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

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

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

4

2 回答 2

4

为此,我几天前创建了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()
于 2013-08-20T15:37:51.777 回答
0

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

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

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

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

于 2012-09-16T20:34:50.697 回答