Flask appbuilder большое приложение - PullRequest
0 голосов
/ 05 марта 2019

Я создал «Большое» приложение, используя Flask-AppBuilder, и у меня есть 2 вопроса, на которые я не видел ответа.

  1. Есть ли способ "разбить" большое приложение на несколько компонентов (аналогично тому, что делают Blueprints).
  2. Моя бизнес-логика в основном закончилась в View, но .... некоторые из них не чувствуют себя там.Немного вещей, которые я добавил к моделям, опять же не чувствуется правильным.Это логика, которая имеет тенденцию создавать длительные процессы, поэтому я тестировал Celery.

Любые примеры любого из них были бы прекрасны.

1 Ответ

0 голосов
/ 13 августа 2019

на самом деле не имеет значения, какую платформу вы используете, но по мере роста приложения вы можете захотеть изолировать критическую логику.И по причинам, которые вы описали выше, но также и для того, чтобы быть ориентированными на будущее (вы можете перейти к новому интерфейсу в будущем без переписывания тяжелой работы).

Обычно для этого я настроил работника redisи используйте, например, flask только для запуска очереди с вызовами функций.Это также делает приложение более масштабируемым (одновременные пользователи, больше данных), так как вы можете просто запустить больше работников, слушающих вашу очередь, если это необходимо.

По сути:

from redis import Redis
from rq import Queue
from rq.job import Job

conn = Redis()
q = Queue(connection=conn)

Тогда как пример ввызов маршрутов фляги (для appBuilder, использования представлений или создания собственной библиотеки lib):

result = q.enqueue('utils.your_function_name',args=(id,))

Посмотрите здесь RQ для получения дополнительных примеров, а также того, как отслеживать состояние ваших работ и т. д.

https://python -rq.org /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...