@Radren

Как асинхронно передавать значение переменной из view в темплейт?

Django.

Есть вьюха (view1) в которой приложение может долго считаться всякое, есть переменная_прогресса расчёта. Требуется обновляемую переменную_прогресса асинхронно передавать в браузер.

Написал для этого новую вьюху (view2), чтобы к ней из браузера ajax'ом обращаться за прогрессом. Но не ясно, как из view2 забирать переменную_прогресса обновляемую во view1?
  • Вопрос задан
  • 204 просмотра
Пригласить эксперта
Ответы на вопрос 1
@nirvimel
Теоретическая сторона:
Есть одна (годная) технология для передачи событий от сервера к клиенту - это WebSocket.
И есть куча старых костылей, актуальных до появления WebSocket - это Commet, Long Polling, Server Push, и прочие техники в основе которых лежит издевательство над не предназначенным для этого протоколом HTTP.

Практическая сторона:
Смотрите в сторону Django Channels.

Update:
Для тяжелых вычислений и любых (потенциально) продолжительных процессов полагается использовать очереди асинхронных фоновых задач:
  1. Сelery - самое популярное решение, практически индустриальный стандарт.
  2. Django Q - молодой, быстро развивающийся, конкурент Celery.
  3. huey, a little task queue - гораздо более легковесный вариант для простых применений.
Ответ написан
Ваш ответ на вопрос

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

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