テンプレートでパラメータを使う

ここでは「テンプレートを利用したページ」で作成したコードを少しだけ発展させて、 テンプレートにパラメータを渡してみましょう。

テンプレート templates/myapp1/index.html を次のように書き換えます。

<!DOCTYPE html>
<html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta charset="UTF-8">
  <title>index.html</title>
  <style>
  body {
    background-color: #B2EBF2;
    font-family: sans-serif;
  }
  </style>
</head>
<body>
  <h1>Hello, {{fname}}!</h1>
</body>
</html>

ポイントは次の箇所です。

<h1>Hello, {{fname}}!</h1>

{{ }} で囲ったところに、パラメータで渡した値が入ります。

ここでは {{ fname }} としていますので、fname という名前で渡したデータの値が入ります。

では、ビューにてパラメータを渡すところを書きます。

from django.http import HttpResponse
from django.template import loader

def index(request):
    template = loader.get_template('myapp1/index.html')
    context = {'fname':'Hanako'}
    return HttpResponse(template.render( context, request))

パラメータに渡すパラメータはコンテキストといいます。 コンテキストのデータ型はディクショナリにして渡します。

ここで、コンテキストは次のようにしていますので、テンプレートには fname という名前のデータとして、 Hanako という文字が渡っているはずです。

context = {'fname':'Hanako'}

では、動作をみてみましょう。

開発サーバーの起動は次のコマンドでしたね。

$ python manage.py runserver

ブラウザからアクセスすると、次のように表示されるはずです。

Django templated page with parameter

確かに {{ fname }} とした箇所に、コンテキストで渡した値が入ることが確認できました。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Python 入門