Услуги и flask_sqlalchemy внутри колбы приложения - PullRequest
0 голосов
/ 02 мая 2019

Я создаю большое, сложное приложение 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 (фабрика приложений)

Спасибо, Луиза

...