每当我提交前端表单以创建用户时,mongoengine始终将新创建的文档保存在“测试”数据库中,而不是我指定的'mydb-dev'
中。我在app.py
中关注the official documentation:
from flask_mongoengine import MongoEngine
mongo = MongoEngine()
app = Flask(__name__)
app.register_blueprint(home_page)
app.register_blueprint(about_page)
app.register_blueprint(user_views)
app.secret_key = "secret key"
app.config['MONGODB_DB'] = 'mydb-dev'
app.config["MONGODB_HOST"] = "mongodb+srv://" + username + ":" + pwd + \
"@<cluster>-fphpr.gcp.mongodb.net/test?retryWrites=true&w=majority"
mongo.init_app(app)
尝试在URI中将“ test”替换为“ mydb-dev”,但无效。我在mongo_engine.py
中初始化mongoengine时也会注册连接(此连接在app.py
之前运行):
import mongoengine as me
def global_init():
db_uri = "mongodb+srv://" + username + ":" + pwd + \
"@<cluster>-fphpr.gcp.mongodb.net/test?retryWrites=true&w=majority"
me.connect(alias=alias_core, name='mydb-dev', host=db_uri)
我不知道为什么mongoengine不使用我指定的数据库。我目前全都没主意...不胜感激。
我的错误是我建立了两个不同的连接,而mongo_setup.py
中的一个导致了问题。我摆脱了该设置,并在app.config['MONGODB_ALIAS'] = 'core'
中添加了app.py
,现在我的文档被保存到正确的数据库中。