Как отправить частичный статус запроса на фронтенд с помощью django python?
Предположим, я отправил пост-запрос из react в Django rest API и этот запрос занимает время. Я хочу получить, сколько процентов он был обработан и отправить на фронтенд без отправки реального ответа?
Есть два общих способа подойти к этому.
(с которого я бы рекомендовал начать): Разбейте запрос на части. Начальный запрос не начинает работу, он посылает сообщение в очередь асинхронных задач (например, Celery) для выполнения работы. Ответом на начальный запрос является ID порожденной задачи Celery. Теперь фронтенд может использовать этот идентификатор запроса для периодического опроса бэкенда, чтобы проверить, закончена ли задача, и получить результаты, когда они будут готовы.
.Websockets, где соединение с бэкендом поддерживается открытым в течение многих запросов, и любая сторона может инициировать отправку данных. Я бы не рекомендовал начинать с этого, поскольку это не совсем то, как построен Django, но при более высоком уровне инвестиций это даст еще более плавный опыт.
.