spooky_2020
@spooky_2020
А меня Сережа зовут.

Как разделить проект и избежать циклических импортов используя Flask?

Причина проблемы - расширениям для фласка нужен экземпляр приложения. Изначально я хотел организовать код так:

1) в главном файле импортируется Flask, создается приложение, настраиваются функции обработки ошибок, отдача статики и фильтры для Jinja. Регистрируются блюпринты роутов-вьюшек.

2) В отдельной папке-пакете лежат файлы с маршрутами и функциями представления.

3) В отдельном файле я хотел описать модели для БД, используя расширениt Flask-SQLAlchemy.

Я бы хотел иметь возможность импортировать нужную мне модель, в файл с маршрутами (пункт 2) что бы использовать
доступ к БД прямо в нужной функции (что логично), но сначала Flask-SQLAlchemy нужно инициализировать в главном файле (пункт 1) экземпляром приложения Flask.

Тут и начинаются проблемы - если я пытаюсь в файла маршрута импортировать что либо из главного файла - начинается циклический импорт, так как в главном файле уже подключены файлы маршрутов используя регистрацию блюпринтов.

Как мне быть и что делать?
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
spooky_2020
@spooky_2020 Автор вопроса
А меня Сережа зовут.
В общем я скормил свой вопрос ChatGPT и получил ссылку на аналогичный вопрос с исчерпывающим ответом.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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