4

何をすべきか、または可能かどうかさえ本当にわからないので、ここに質問を投稿することにしました。あなたはそれが再投稿だと言うかもしれませんが、私はそれについて同様の投稿を読みましたが、それは私を助けませんでした.

これが取引です。私はdjangoとの管理インターフェースを持っていて、サーバー上の外部サイトからファイルをダウンロードし、ダウンロードのパーセンテージを示すプログレスバーを使用したいと考えています。

ダウンロード中は何もできません。ビュー内で call_command を使用してコマンドを実行しようとしましたが、同じです。

Djangoサーバーがシングルスレッドだからですか? それで、私がやりたいことを達成することさえ可能ですか?

前もって感謝します、

4

1 に答える 1

2

それは可能ですが、比喩的なフープを介していくつかのジャンプが必要です. 私の答えは Django 固有のものではありません。フレームワークに変換する必要があります。

  1. 実際のダウンロードを行うスレッドを開始します。ダウンロード中に、ユーザーのセッションの一部のデータ構造 (ダウンロードの合計サイズなど) を更新する必要があります。

  2. ブラウザーで、「ダウンロード ステータス URL」への AJAX 要求を行うタイマーを開始します。

  3. セッションからステータスを取得し、ブラウザに送信する JSON または HTML の一部に変換するこの URL のハンドラを作成します。

  4. AJAX ハンドラーの success メソッドで、JSON/HTML を取得して現在のページに配置します。ダウンロードが完了しない限り (この部分は JSON を使用するとより単純になります)、タイマーを再起動します。

于 2012-06-19T07:48:02.803 に答える