Путаница возникает из-за того, что в этих руководствах слишком много шаблонов программирования.В уроке о flask-1.0.2 они используют шаблон метода получения, но flask-mongoengine полагается на начальную загрузку экземпляра db в flask-app, который опирается на шаблон компоновщика - Фабрики приложений Flask .Это может все еще сбивать с толку, но я покажу вам, как это должно быть сделано.
Загрузите флеш-монго в create_app :
def create_app(test_config=None):
app = Flask(__name__)
# configure mongo settings here like in flask-mongoengine docs
g.db = db = MongoEngine()
db.init_app(app)
def get_db():
return g.db
def close_db():
pass
Как насчет close_db()
?Хорошо, эта функция существует в том случае, если выбранный вами db нуждается в некоторых действиях по очистке, которые необходимо закрыть.Но я не нашел в документации mongoengine никаких явных упоминаний о том, что соединение dongoengine db требует от вас выполнения действий по очистке, чтобы вы могли его просто пропустить.