2015-04-08 23 views
8
takip ederek

Ben tumbleblog uygulama takip ediyorum herehata Tumblelog Şişesi ile Uygulama ve MongoEngine

benim __init__.py: Ben geçen çalıştı

mongoengine.connection.ConnectionError: Cannot connect to database default : 
False is not a read preference. 

:

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() 

hatası alıyorum’da "alias"="default"’dayine de aynı hatayı alıyor.

cevap

11

MONGODB_SETTINGS sözlüğünüzde, veritabanı adı için anahtar 'db' değil, 'DB' (yani, tüm küçük harf) olmalıdır.

Aldığınız hatanın nedeni, MongoEngine uzantısının yapılandırmanızda "db" girdisini bulamaması ve bu nedenle veritabanı adı olarak "varsayılan" değerini kullanmasıdır. Ayrıntılı incelenmesi üzerine

Düzenleme

, mongoengine.connect içinde read_preference varsayılan değeri yerine gerçek okumak Yanlış olan bir böcek bir yerlerde (Flask-) MongoEngine (veya olası pymongo) görünüyor tercihi ve

Eğer

from pymongo import read_preferences 
sizin ithalatı için

ve

eklerseniz pymongo gerçek varsayılan transforme olmaz config sözlüğüne
'read_preference': read_preferences.ReadPreference.PRIMARY 

, bu

+0

i denedim (yani pymongo varsayılan read_preference var) çalışması gerektiğini de .. app.config [ "MONGODB_SETTINGS"] = { 'db': "sencha_web_service " 'kullanıcı adı': "", "parola": "", "port": 27.017 } –

+0

@Samuel Littley Bu doğrudur - bu son sürümde bir hata var. – okoboko

+0

herkes bunu github üzerinde bildirdi? – dpgaspar