Задать вопрос
@Radren

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

Django.

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

Написал для этого новую вьюху (view2), чтобы к ней из браузера ajax'ом обращаться за прогрессом. Но не ясно, как из view2 забирать переменную_прогресса обновляемую во view1?
  • Вопрос задан
  • 206 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Компьютерная академия «TOP»
    Разработка на Python
    1 год
    Далее
Пригласить эксперта
Ответы на вопрос 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 - гораздо более легковесный вариант для простых применений.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы