Nid*_* J. 8 python mongodb flask flask-mongoengine
我在这里关注tumbleblog应用程序
我的__init__.py
:
from flask import Flask
from flask.ext.mongoengine import MongoEngine
app = Flask(__name__)
app.config["MONGODB_SETTINGS"] = {'DB': "sencha_web_service", 'username': "<username>", "password": "<password>"}
app.config["SECRET_KEY"] = "KeepThisS3cr3t"
db = MongoEngine(app)
if __name__ == '__main__':
app.run()
Run Code Online (Sandbox Code Playgroud)
我收到错误:
mongoengine.connection.ConnectionError: Cannot connect to database default :
False is not a read preference.
Run Code Online (Sandbox Code Playgroud)
我想传递"alias"="default"
的 app.config["MONGODB_SETTINGS"]
,但仍然得到同样的错误.
Sam*_*ley 11
在MONGODB_SETTINGS字典中,数据库名称的键应为"db",而不是"DB"(即全部为小写).
您得到的错误是因为MongoEngine扩展在您的配置中找不到'db'条目,因此使用'default'作为数据库名称.
编辑
在进一步检查时,似乎这是(Flask-)MongoEngine(或可能的pymongo)中某处的错误,其中mongoengine.connect中的read_preference的默认值为False而不是实际的读取首选项,并且未转换为实际的默认值. pymongo
如果你添加
from pymongo import read_preferences
Run Code Online (Sandbox Code Playgroud)
你的进口和
'read_preference': read_preferences.ReadPreference.PRIMARY
Run Code Online (Sandbox Code Playgroud)
到你的配置字典,它应该工作(这是pymongo中的默认read_preference)
归档时间: |
|
查看次数: |
1834 次 |
最近记录: |