Я создаю большое, сложное приложение Flask. Он имеет множество функций маршрутизации (которые должны выполнять вызовы из базы данных) и множество сервисов (которые также должны выполнять вызовы из базы данных).
Я использую flask_sqlalchemy для выполнения вызовов базы данных в функциях маршрута как обычно с синтаксисом модели (User.query).
Я также хотел бы сделать вызовы базы данных в сервисах. Однако я не могу сделать это без установки контекста приложения:
with app.app_context():
User.query
, который требует импорта приложения, что приводит к циклическому импорту (поскольку приложение импортирует маршруты, которые импортируют сервисы, которые должны импортировать приложение).
ВОПРОС 1: Знаете ли вы, как обойти эту проблему кругового импорта?
Другим подходом может быть использование flask_sqlalchemy в маршрутах и sqlalchemy в сервисах. Это означает, что ничего не нужно передавать, кроме URL базы данных и .... моделей.
ВОПРОС 2: Знаете ли вы, как использовать одни и те же файлы моделей как с flask_sqlalchemy, так и с обычной sqlalchemy?
Я пробовал это: https://dev.to/nestedsoftware/flask-and-sqlalchemy-without-the-flask-sqlalchemy-extension-3cf8
... однако это нарушает мои отношения.
Я следую приведенному здесь шаблону колбы: https://github.com/sloria/cookiecutter-flask/blob/master/%7B%7Bcookiecutter.app_name%7D%7D/README.rst (фабрика приложений)
Спасибо,
Луиза