我安装了couchDB v 0.10.0,并试图通过从couchDB wiki下载的Couch类中的python进行交谈.问题是:
Create database 'mydb': {'error': 'unauthorized', 'reason': 'You are not a server admin.'}
Run Code Online (Sandbox Code Playgroud)
我手动编辑了local.ini文件,以包含我的标准osx登录名和密码.我现在可以通过蒲团完全访问但没有快乐WRT python.这是http头问题吗?
亏本 - 谢谢!
lys*_*xia 21
为了总结David的回复,(即"这是我在使用couchdb 1.0.2的python 2.6中使用模块CouchDB 0.8的方式")
couch = couchdb.Server(couch_server)
couch.resource.credentials =(USERNAME,PASSWORD)
你也可以这样做:
db = couchdb.Database("http://your.url/yourdb")
db.resource.http.add_credentials(username, password)
Run Code Online (Sandbox Code Playgroud)
之后你的所有要求都应该有效.
Couch示例中的类不会将任何身份验证信息传递给数据库,因此它不允许特权操作并不奇怪.所以你唯一的选择是:
AuthorizationHTTP请求标头传递如果要传递用户名和密码,则需要更改Couch类.Authorization由于Couch类使用httplib.HTTPConnection该类,因此发送HTTP请求标头更容易.您可以通过以下方式添加此类标题Accept:
headers = {
"Accept": "application/json",
"Authorization": "Basic " + 'username:password'.encode('base64')[:-1]}
Run Code Online (Sandbox Code Playgroud)
其他HTTP请求方法也是如此.
有关基本身份验证的文档如下:
http://books.couchdb.org/relax/reference/security
| 归档时间: |
|
| 查看次数: |
8254 次 |
| 最近记录: |