#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 /