Web2Py连接到Couchbase并通过API公开存储桶

时间:2015-12-17 15:26:59

标签: 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 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

任何其他建议,Web2Py连接到couchbase的解决方法,特别是由API公开?谢谢!

2 个答案:

答案 0 :(得分:2)

这不是web2py问题,因为您没有通过web2py DAL连接到Couchbase,而只是使用标准的Couchbase Python SDK。您似乎正在使用SDK 2.0版。 NameError的原因是您尚未导入Bucket。基于documentation,看起来应该是:

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

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

答案 1 :(得分:1)

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

如果更新import语句,则不应再遇到NameError。

不幸的是,我不确定这是否支持你想要用web2py做什么。