Как разделить пользовательскую и серверную часть django проекта?

Добрый день. Разрабатывается проект на django.
Возникла следующая ситуация:
Пользователю предлагается ввести несколько данных, после этого он нажимает на кнопку "Подтвердить" и данные отправляются на сервер, где начинается их обработка, она может занимать некоторое время, примерно минуту. В это время пользователь видит ту же самую html страницу, которая была и до ввода и нажатия на кнопку "Подтвердить".
Собственно вопрос, как после нажатия на кнопку "Подтвердить" вывести пользователю отдельную html страницу, а когда на сервер обработает данные, показать ему уже результаты работы?
Буду рад любым комментариям по поводу этой проблемы. Спасибо!
  • Вопрос задан
  • 2330 просмотров
Решения вопроса 1
sim3x
@sim3x
Как сделать форму
https://docs.djangoproject.com/en/1.6/topics/class...

Как сделать таск для бекграунд обработки
docs.celeryproject.org/en/latest/getting-started/f...

Для показа результата -- рефреш страници каждие Х сек
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@bromzh
Drugs-driven development
Самый простой вариант - подгружать данные аяксом. Когда аякс запрос не закончился, выводить одну информацию (настраивается в jquery), когда аякс закончился (т.е. вызвался колбек) - отрисовывать результаты или делать редирект на страницу с результатами.
Сложный вариант - использовать асинхронный сервер с вебсокетами, на клиенте ждать нужного сообщения, по приходу которого отображать полученные данные или редиректить на нужную страницу.
Ответ написан
Комментировать
Aldaron1
@Aldaron1
Можно отдать пользователю шаблон, который подтянет потом данные AJAX'ом
Ссылка на пример
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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