Django: Динамически обновлять страницу результатов

#python #django #django-views

#python #django #django-просмотры

Вопрос:

У меня есть код python, который запускается при нажатии кнопки. Выполнение этой функции занимает некоторое время. В моем коде django страница результатов отображается после завершения выполнения этой функции.

Но то, что я хочу, это какой-то механизм на основе очереди, с помощью которого моя текущая функция может передавать частичные результаты (список ссылок) по мере их вычисления в представления, а содержимое страницы результатов обновляется динамически в соответствии с данными в очереди, чтобы пользователю не приходилось ждать завершениявся функция завершает исключение и может видеть частичные результаты на странице результатов.

Я новичок в django и веб-разработке. Как это можно сделать в django? Есть ли какая-нибудь библиотека для этого?

Заранее благодарю вас

Ответ №1:

Вы не можете выполнить частичное вычисление синхронно с функцией. Вы можете попробовать использовать эту библиотеку celery для выполнения асинхронного выполнения.

ИЛИ ЖЕ

Вы должны использовать промежуточное промежуточное программное обеспечение, где Python и Javascript могут передаваться потокобезопасным способом, таким как redis queue, zmq и т.д..

Ответ №2:

Ajax был бы более подходящим для выполнения такого рода обновлений «в реальном времени». Это позволяет отправлять асинхронные (A из AJAX) запросы / данные.

Поместите на свою веб-страницу скрипт, который будет обновлять рендеринг каждый раз, когда ваш сервер отправляет новые данные.

Вы можете найти больше об этом здесь: http://api.jquery.com/jquery.ajax /