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

我正在使用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 = 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设置。谢谢你的提示!