Python入門 Djangoの使い方(その8)テンプレートに値を渡す。


Python入門 Djangoの使い方(その8)テンプレートに値を渡す。

はじめに

不定期連載のPython入門第22回目です。今回もPythonのWebフレームワーク「Django」を使っていきましょう。DjangoはPythonのWebフレームワークの代表格です。今回はPython入門として、前回に引き続き、Djangoのテンプレートとビューの使い方を見ていきます。

今回の内容:
テンプレートに値を渡す。

前提条件:

  • Pythonバージョン:Python3
  • Djangoバージョン:Django1.10.5
  • 実行環境:Windows8
  • ツール:VisualStudioCommunity2015

views.pyの記述

Djangoでビューの設定は「views.py」で行います。前回は「views.py」で以下のようにテンプレートを呼び出す記述をしました。

def test1(request):
    return render(request, 'sample1.html')

今回はこの記述をカスタマイズしてテンプレートに変数を渡せるようにしましょう。
以下のようにrenderメソッドの引数を追加します。

def test1(request):
    params = {
        'param1': 'こんにちは',
        'param2': 'こんばんは',
    }
    return render(request, 'sample1.html', params)

paramsという辞書オブジェクトを作成し、param1に「こんにちは」、param2に「こんばんは」をセットします。
そしてそのparams変数を「render」メソッドの第三引数にセットします。こうすることで、値をテンプレート「sample1.html」に渡せます。

テンプレートに変数を埋め込む。

それでは次に渡された変数をテンプレート側で表示してみましょう。

<!DOCTYPE html>

<html lang="ja">
<head>
    <meta charset="utf-8" />
    <title>test</title>
</head>
<body>
    パラメータ1つ目:{{ param1 }}<br />
    パラメータ2つ目:{{ param2 }}
</body>
</html>

以下のように表示されればOKです。

パラメータ1つ目:こんにちは
パラメータ2つ目:こんばんは

タプル、辞書、リスト変数を渡す。

以下のようにスカラー変数以外の変数も渡すことが可能です。

    params = {
        'param1': 'こんにちは',
        'param2': 'こんばんは',
        'param3': ("グー", "チョキ", "パー"),
        'param4':{"a":"apple","b":"banana","c":"cherry"},
        'param5':[111,222,333]
    }

テンプレート側では以下のように呼び出すことができます。

    <li>タプル:{{ param3.0 }}</li>
    <li>辞書:{{ param4.a }}</li>
    <li>リスト:{{ param5.0 }}</li>

「.(ドット)」でつなぐところがポイントです。
以下のように表示されればOKです。

タプル:グー
辞書:apple
リスト:111

まとめ

今回はビューからテンプレートへの変数の引き渡し方法を見てみました。辞書オブジェクトを用いることで複数の値を渡すことができます。オブジェクトにタプルや辞書をセットすることもできました。
また、テンプレートでの変数表示も比較的簡単に行うことができるので、HTML感覚でテンプレート編集を行うことができます。次回はテンプレートでの制御構文について学習していきたいと思います。

  • このエントリーをはてなブックマークに追加

PAGE TOP