@MaxxxZ

Как правильно инициализировать DB peewee во Flask?

У меня используется Flask-приложение со следующей схемой реализации:
from app import create_app

if __name__ == "__main__":
    app = create_app()
    app.run(port = 8080, debug = True)

и для модуля app:
from flask import Flask, request, url_for
from flask_bootstrap import Bootstrap
from flask_peewee.db import Database
from flask_login import LoginManager
from config import Config

login = LoginManager()
login.login_view = 'auth.login'
login.login_message = 'Для входа в систему необходима авторизация'
bootstrap = Bootstrap()

def create_app(config_class=Config):
    app = Flask(__name__)
    app.config.from_object(config_class)
       
    login.init_app(app)
    bootstrap.init_app(app)

    return app


Для алхимии, бутстрап и логин в этом случае всё просто: сначала объект объявляется и создаётся переменная, а затем выполняется инициализация с передачей объекта app.
Но flask_peewee.db должен быть инициализирован с параметрами сразу при создании. Я с одной стороны не могу его определить за пределами create_app, так как там нет ещё конфига. Но и внутри create_app определить переменную не могу, так как она умрёт по завершении функции. Как обойти эту проблему? В документации к peewee не нашёл двухстадийного определения.
  • Вопрос задан
  • 40 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы