Я довольно новичок в веб-разработке, поэтому я просто пытаюсь понять, правильно ли я представляю себе то, что я пытаюсь сделать. Простите, если какая-то терминология неверна.
Мое приложение Django должно выполнять следующие действия:
- Пользователь загружает файл через браузер
- Файл обрабатывается сервером (может занять до часа)
- Пользователь видит результаты в своем браузере
У меня проблемы с выполнением шага 2 ... вот что я думаю:
1. Пользователь загружает файл (довольно просто)
2.Файл обрабатывается - функция просмотра будет выглядеть примерно так:
def process(request):
a. (get file from the request)
b. (return a page which says "the server is running your job, results will be available in {ETA}")
c. (start processing the data)
3. Пользователь видит результаты в своем браузере - Браузер регулярно запрашивает сервер, чтобы увидеть, выполнена ли работа. Когда работа готова, браузер получает результаты.
У меня вопрос: на шаге 2, части b и c, как я могу вернуть ответ браузеру, не дожидаясь завершения процесса? Или как я могу убедиться, что процесс продолжает работать после того, как я возвращаю результаты в браузер? В идеале процесс должен иметь доступ к переменным окружения Django, поскольку он будет работать с базой данных через интерфейс Django.