0

ユーザーが10個のxmlドキュメントに入力したキーワードを検索し、各ファイルのそれらの単語の頻度カウントを維持するdjangoを使用してアプリを作成しました。結果は、ファイル名とグラフの展開可能なハイパーリンク リストの形式でユーザーに返されます。私のhtmlコード:

<html>
 <style type="text/css">
        h1 {
             position: absolute;
             top:   5px;
             left:  200px;      
           }    
        form #Edit1 { 
                     position: absolute;
                     top:    37px; 
                     left:   410px; 
                    }
        form #Edit2 { 
                     position: absolute; 
                     top:    37px; 
                     left:   840px; 
                    }
       </style>
       <font size="4" face="arial" color="#0000FF">
       <h1>XML Search</h1>
       </font>
       <br/>
       <br/>
       <Form Action ="/search/" Method ="POST">
       <div id="Edit1">
            <INPUT TYPE = 'VARCHAR'  name ='word' VALUE ="" size = "50">
       </div>
       <div id="Edit2">
            <INPUT TYPE = "Submit" VALUE = "Search">
       </div>
       <br/>
       <hr/>
       {% csrf_token %}
       </FORM>
       {% if list1 %}
          <input type="text" name="word" value="{{ word }}" />
          <ul> 
             {% for l in list1 %}
                  <li><a href="{{STATIC_URL}}static/{{l.file_name}}">{{l.file_name}}</a>, {{l.frequency_count}}</li>
             {% endfor %}
          </ul>
          <br/>     
     # -- charts to be employed -- #
       {% endif %}
</html>

この html ページは、views.py ファイルからリダイレクトされます。ここで、この html コードで matplotlib を使用してチャートのコードを書きたいと思います。上記のライブラリを使用してチャートを作成するコードはpythonで書かれているので、このpythonコードを上記のhtmlファイルにどのように記述すればよいか、または他の方法があれば教えてください。

注: 私は Google チャートを使用しており、完全に正常に動作していますが、このアプリをインターネットに依存しないようにしたいので、Google チャートを提案しないでください。

助けてください、私はチャートとジャンゴが初めてです。

4

1 に答える 1

1

matplotlib クックブックには、django でのmatplotlib の使用に関するエントリがあります。

要約すると、次のようになります。

  • urls.py では、新しいビューへのリンクを含む png のエントリを追加します。
  • 新しいビューで、content_type image/png で HttpResponse を作成します
  • matplotlib を使用して、図を png として前述の HttpResponse に書き込みます

クックブックから直接コピーして貼り付ければ、うまくいくはずです。

おそらく、問題を一口サイズの断片に分割して、一度に 3 つのことを学ばないようにすることができます。

  1. ページに静的 .png を追加する
  2. urls.py と新しいビューを使用して動的な .png をページに追加します
  3. Matplotlib で Figure を作成する (オフライン)
  4. ステップ 3 の matplotlib の図をステップ 2 の動的イメージに配置します。
于 2012-07-31T07:33:35.643 に答える