2012-06-19 5 views
4

Хорошо, я решил опубликовать этот вопрос здесь, потому что я действительно не знаю, что делать или даже если это возможно. Вы могли бы сказать мне, что это репота или так, но я читал подобные сообщения об этом, и это не помогло мне.Django/Python Скачивание файла с индикатором прогресса

Здесь находится сделка. У меня есть интерфейс администратора с django и вы хотите загрузить файл с внешнего сайта на моем сервере с индикатором прогресса, показывающим процент загрузки.

Я ничего не могу сделать во время его загрузки. Я попытался запустить команду с call_command в представлении, но это то же самое.

Это потому, что сервер Django является однопоточным? Итак, возможно ли даже достичь того, что я хочу сделать?

Спасибо заранее,

ответ

2

Это возможно, но занимает несколько прыжков, хотя метафорических обручи. Мой ответ не специфичен для Django, вам нужно перевести его в свою структуру.

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

  2. В браузере запустить таймер, который делает AJAX запросы к «статуса загрузки URL»

  3. Создание обработчика для этого URL, который принимает статус от сессии и превращает это в JSON или кусок HTML, который вы отправляете в браузер.

  4. В методе успеха обработчика AJAX возьмите JSON/HTML и поместите его на текущую страницу. Если загрузка не будет завершена (эта часть более проста с JSON), перезапустите таймер.

+0

Моя проблема специфична для django. На локальном, когда я делаю сервер, я не могу запустить другой поток. – philippe87

+0

Начните тему при получении запроса. –

Смежные вопросы