Как разделить проект и избежать циклических импортов используя Flask?
Причина проблемы - расширениям для фласка нужен экземпляр приложения. Изначально я хотел организовать код так:
1) в главном файле импортируется Flask, создается приложение, настраиваются функции обработки ошибок, отдача статики и фильтры для Jinja. Регистрируются блюпринты роутов-вьюшек.
2) В отдельной папке-пакете лежат файлы с маршрутами и функциями представления.
3) В отдельном файле я хотел описать модели для БД, используя расширениt Flask-SQLAlchemy.
Я бы хотел иметь возможность импортировать нужную мне модель, в файл с маршрутами (пункт 2) что бы использовать
доступ к БД прямо в нужной функции (что логично), но сначала Flask-SQLAlchemy нужно инициализировать в главном файле (пункт 1) экземпляром приложения Flask.
Тут и начинаются проблемы - если я пытаюсь в файла маршрута импортировать что либо из главного файла - начинается циклический импорт, так как в главном файле уже подключены файлы маршрутов используя регистрацию блюпринтов.