ユーザ用ツール

サイト用ツール


メモ:django2

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
最新のリビジョン両方とも次のリビジョン
メモ:django2 [2019/05/30 13:11] – [URLからパラメータを受け取る] Wiki Editorメモ:django2 [2019/05/31 16:11] – [テンプレートの利用] Wiki Editor
行 58: 行 58:
 テンプレートを保存するディレクトリを作成する。テンプレートは、標準ではsettings.pyのINSTALLED_APPSに列挙されたアプリケーションのベースディレクトリ内にある「templates」ディレクトリから検索されるた、templateディレクトリを作成する。さらに、その中にアプリケーション名に対応したサブディレクトリが必要になるので、ここでは「template/report」ディレクトリも作成する。 テンプレートを保存するディレクトリを作成する。テンプレートは、標準ではsettings.pyのINSTALLED_APPSに列挙されたアプリケーションのベースディレクトリ内にある「templates」ディレクトリから検索されるた、templateディレクトリを作成する。さらに、その中にアプリケーション名に対応したサブディレクトリが必要になるので、ここでは「template/report」ディレクトリも作成する。
  
 +report/views.py
 +  def index(request):
 +      r_list = ReportContents.objects.order_by('hs_code')[:5]
 +      template = loader.get_template('report/index.html')
 +      context = {
 +          'r_list': r_list
 +      }
 +      return HttpResponse(template.render(context, request))
  
 +View側はテンプレートを指定して、データが格納されたオブジェクトと共に出力に送る。
  
 +テンプレートはtemplatesディレクトリからの相対パスを指定する。テンプレート内で利用するデータは、contextとして渡す。
 +
 +
 +report/template/index.html
 +  {% if r_list %}
 +      <ul>
 +      {% for r in r_list %}
 +          <li><a href="/polls/{{ r.id }}/">{{ r.report_field01 }}</a></li>
 +      {% endfor %}
 +      </ul>
 +  {% else %}
 +      <p>No polls are available.</p>
 +  {% endif %}
 +
 +テンプレート側ではcontextとして渡されたオブジェクトの中に格納されているデータを適切にテンプレートに埋め込んで表示する。
 +
 +
 +===== Viewの一般的な利用 =====
 +ここまででViewの実践的な使い方の基本を理解したが、Viewからテンプレートで使う変数をcontextとして渡してページを生成する手順は非常によく使うパターンである。そのため、Djangoではショートカットという形で簡略化した呼び出し方法が用意されている。
  
  
メモ/django2.txt · 最終更新: 2019/05/31 18:01 by Wiki Editor

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki