новичок: индикатор выполнения django jquery (не для составных форм) - PullRequest
1 голос
/ 08 марта 2012

Отказ от ответственности: я новичок в django и python, но у меня есть опыт программирования на Drupal.

Последние три часа я потратил на поиск простого способа интеграции индикатора выполнения jqueryui в мой сайт django (сервер разработки) (запуск sqlite на локальном хосте), где на панели отображается НЕ загрузка файлов, а ход выполнения другого скрипта Python (мне нужно перенести сотни фотографий со многих SDC-карт на локальный хост через веб-интерфейс django).У моего веб-приложения уже есть работающее диалоговое окно jquery, и я могу правильно отправлять и получать простые запросы ajax ($ .get ...

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

Если темы - это ответ, я предполагаю, что это нормально? http://nedbatchelder.com/blog/201103/quick_and_dirty_multithreaded_django_dev_server.html

Ответы [ 2 ]

0 голосов
/ 08 марта 2012

Если вы хотите, чтобы это происходило в реальном времени, вы можете использовать длинный опрос, но есть слишком много дел.

Самый простой способ - использовать отдельный процесс в качестве рабочего и обновить процесс во временный файл. (Этот файл будет содержать только 1 строку, которая является процентом прогресса).

Ваше представление должно просто извлечь файл, прочитать его и вернуть клиенту, как есть. Поскольку информация во временном файле является индикатором выполнения в одну строку (например, «79» для 79%), с Javascript очень легко разобраться.

Затем в браузере вы можете вызывать ваше представление с помощью ajax get request каждые 5 секунд и обновлять индикатор выполнения.

0 голосов
/ 08 марта 2012

Вы можете использовать что-то вроде django-ztask или сельдерея для фонового процесса.

Страница, на которой находится пользователь, должна запросить представление% прогресса с помощью ajax или, может быть, просто перезагрузить себя и показать обновленную строку прогресса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...