みなさんこんにちは、ZeroTerasu(@ZeroTerasu)です。
今回は、Pythonで動的グラフを表示するためのライブラリであるPlotlyを使った、Djangoアプリケーションによる動的グラフのブラウザ表示の方法について解説していきます。
今回の例では、日々の体重を記録するためのアプリを題材にして解説していきます。
作成するアプリの概要
今回の記事では、DjangoでPlotlyを使うための方法にフォーカスを当てていきたいと思います。そのため、フォームからモデルを通じてDBにデータを保存する方法(今回の場合、フォームからモデルを通じて日付と体重のデータをDBに保存する方法)についての詳細な解説は下記の記事をご参照下さい。
また、今回のアプリケーションについて、ユーザーからアクセスがあった後の処理手順について解説します。
Django X Plotly – ポイント①:charts.py <= Plotlyを用いてモデルのデータからチャートを表示するためのHTMLを生成するモジュール
create_chart()メソッド:動的グラフを表示するためのHTMLを生成するメソッド
charts.pyモジュール:create_chart()メソッドを格納したモジュール。views.pyから呼び出される。
Django X Plotly – ポイント②:views.py <= charts.pyのcreate_chart()メソッドを呼び出し、context[“graph”]属性に格納して、テンプレートに引き渡す。
- get_contect_date()関数をオーバーライドして、contextに対してcontext[‘graph’]という新たな属性を付加している。
- “1”で追加された新たな属性のcontext[‘graph’]には、create_chart()メソッドの結果(Plotlyを用いた動的グラフを生成するためのHTML)が格納される。
- contextデータがtemplateに引き渡される。
Django X Plotly – ポイント③:chart.html <= テンプレートにviews.pyで生成したcontextを引き渡す。
- <meta>タグ内に<script src=”https://cdn.plot.lu/plotly-latest.min.js”></script>を定義
- {% autoescape off %}{{ graph }}{% endautoescape %}の形で{{ graph }}を挟む。
- {{ graph }}でviews.pyのcontext[“graph”]の値を表示する。
ポイントとしては、上記の通りです。以下では、今回作成したアプリの他のモジュールについても参考情報として掲載致します。
コメント