Flask Mongoengine始终连接到“测试”数据库
我正在使用flask和flask mongoengine。应用程序通过应用程序工厂进行设置,如下所述 我的模型在单独的文件中定义,如下所示:Flask Mongoengine始终连接到“测试”数据库,flask,mongoengine,flask-mongoengine,Flask,Mongoengine,Flask Mongoengine,我正在使用flask和flask mongoengine。应用程序通过应用程序工厂进行设置,如下所述 我的模型在单独的文件中定义,如下所示: from flask_mongoengine import MongoEngine db = MongoEngine() class NodeModel(db.Document): node_id = db.UUIDField(primary_key=True) .... def create_app(): app = Flas
from flask_mongoengine import MongoEngine
db = MongoEngine()
class NodeModel(db.Document):
node_id = db.UUIDField(primary_key=True)
....
def create_app():
app = Flask(__name__, static_url_path=''
...
app.config['MONGODB_DB'] = 'myDb'
app.config['MONGODB_HOST'] = ....
app.config['MONGODB_UUIDREPRESENTATION'] = 'standard'
with app.app_context():
from models import db
db.init_app(app)
...
return app
\uuuu init\uuuu.py
中的应用程序工厂如下所示:
from flask_mongoengine import MongoEngine
db = MongoEngine()
class NodeModel(db.Document):
node_id = db.UUIDField(primary_key=True)
....
def create_app():
app = Flask(__name__, static_url_path=''
...
app.config['MONGODB_DB'] = 'myDb'
app.config['MONGODB_HOST'] = ....
app.config['MONGODB_UUIDREPRESENTATION'] = 'standard'
with app.app_context():
from models import db
db.init_app(app)
...
return app
应用程序正确启动,所有路由都正常工作。但是,数据存储在默认的
test
数据库中,而不是myDb
中。其他MongoDB配置,如主机和MongoDB\u UUIDREPRESENTATION
,也受到尊重。我已经研究这个问题好几个小时了,但是没有用。我错过了什么?如何设置flask mongoengine以连接到正确的数据库?如果您通过app.config['MONGODB_SETTINGS']
进行设置,是否有帮助?
e、 g
另外,请注意,uri中的数据库名称优先于名称。所以如果你使用
app.config['MONGODB_SETTINGS'] = {
'db': 'myDb',
'host': 'mongodb://localhost/',
...
}
mongoengine将写入测试
db,因为主机中没有设置
顺便说一下,我认为mongoengine并不总是在URI中使用db名称,因为当我最近使用它时
app.config['MONGODB_SETTINGS'] = {
'host': 'mongodb://localhost/myDb',
...
}
mongoengine也一直在写
test
。我不知道主机字符串会覆盖显式DB设置。谢谢你的提示!