Web2Py连接到Couchbase并通过API公开bucket

Web2Py连接到Couchbase并通过API公开bucket,couchbase,web2py,Couchbase,Web2py,我想公开一个couchbase存储桶,在其中保存web2py应用程序中生成的一些XML文件。我知道我可能会使用MongoDB,但我需要使用Couchbase 有Couchbase的官方连接器吗?我在DAL文档中找不到它 我正在尝试这项工作: from couchbase import Couchbase cb = Couchbase.connect(bucket='mybucket', host='localhost', port=8091) #this works but we got a m

我想公开一个couchbase存储桶,在其中保存web2py应用程序中生成的一些XML文件。我知道我可能会使用MongoDB,但我需要使用Couchbase

有Couchbase的官方连接器吗?我在DAL文档中找不到它

我正在尝试这项工作:

from couchbase import Couchbase
cb = Couchbase.connect(bucket='mybucket', host='localhost', port=8091)
#this works but we got a message saying it is depreciated
# DeprecationWarning: Couchbase.connect() is deprecated. Use Bucket() instead
但我收到一条消息说它被贬值了,我应该用它来代替:

cb = Bucket(bucket='mybucket', host='localhost', port=8091)
但后来我犯了一个错误:

<type 'exceptions.NameError'> name 'Bucket' is not defined
未定义名称“Bucket”

还有其他建议吗,Web2Py连接couchbase的变通方法,特别是通过API公开?谢谢

如果希望使用语法
cb=Bucket(Bucket='mybucket',host='localhost',port=8091)
,则必须将导入语句从
从couchbase导入couchbase
更新为
从couchbase.Bucket导入Bucket

如果更新导入语句,则不应再出现名称错误


不幸的是,我不确定这是否完全支持您希望它对web2py执行的操作。

这不是web2py的问题,因为您不是通过web2py DAL连接到Couchbase,而是简单地使用标准Couchbase Python SDK。您似乎正在使用SDK的2.0版。名称错误的原因是您尚未导入
存储桶
。基于,看起来应该是:

from couchbase.bucket import Bucket
cb = Bucket('couchbase://localhost/mybucket')

注意,web2pydal部分支持CouchDB,但不支持Couchbase。使用上述功能,您将无法将web2py DAL或其任何相关功能(例如,
Auth
SQLFORM
SQLFORM.grid
)与Couchbase结合使用。

谢谢您的评论。事实上,我还想检查Web2Py是否真的不支持Couchbase,我在这里和另一个线程中得到了确认。我想我将能够使用普通的Python SDK连接继续我的API公开。
localhost:
也被弃用,除非
port
是非标准的,在这种情况下,
port
将是
http://:
couchbase://:
谢谢。看起来他正在使用标准端口,所以我从连接字符串中删除了它。