我想公开一个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公开?谢谢!
答案 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或其任何相关功能(例如Auth
,SQLFORM
,SQLFORM.grid
)与Couchbase结合使用。
答案 1 :(得分:1)
如果您希望使用cb = Bucket(bucket='mybucket', host='localhost', port=8091)
语法,则必须将导入语句从from couchbase import Couchbase
更新为from couchbase.bucket import Bucket
。
如果更新import语句,则不应再遇到NameError。
不幸的是,我不确定这是否支持你想要用web2py做什么。