Djangoテンプレートタグ完全リスト|if・for・extends・includeの基礎を超初心者向けに解説
生徒
「Djangoのテンプレートって、HTMLと何が違うんですか?」
先生
「HTMLに“条件分岐”や“くり返し”を追加できる仕組みだと考えると分かりやすいですよ。」
生徒
「プログラミングをしたことがなくても使えますか?」
先生
「大丈夫です。Djangoテンプレートタグは、人間の言葉に近い書き方なので、順番に覚えれば理解できます。」
1. Djangoテンプレートとは何か
Djangoテンプレートとは、Webページの見た目を作るための仕組みです。普通のHTMLは文字を書くだけですが、Djangoテンプレートを使うと「条件によって表示を変える」「同じ形を何度も表示する」といったことができます。
たとえるなら、白紙のチラシがHTML、名前や日付を差し替えられるひな形がDjangoテンプレートです。このひな形を使うことで、毎回同じ作業をしなくて済みます。
2. テンプレートタグの基本ルール
Djangoテンプレートタグは、HTMLの中に特別な記号で書きます。主に {% %} という形で囲みます。この中に「もし〜なら」「くり返す」といった命令を書きます。
難しい言葉で言うと制御構文ですが、意味は「表示のルール」です。ページの表示をどうするかを決めるルールだと覚えてください。
3. ifタグ|条件によって表示を変える
ifタグは「もし〜だったら表示する」という条件分岐です。年齢やログイン状態などによって、表示内容を変えたいときに使います。
{% if age >= 20 %}
<p>大人向けコンテンツです。</p>
{% else %}
<p>未成年の方は閲覧できません。</p>
{% endif %}
これは「年齢が20以上なら上の文章、そうでなければ下の文章を表示する」という意味です。日常会話の「もし雨なら傘を持つ」と同じ感覚で考えられます。
4. forタグ|同じ表示をくり返す
forタグは、同じ形のデータを順番に表示したいときに使います。例えば、買い物リストや名前一覧などです。
<ul>
{% for item in items %}
<li>{{ item }}</li>
{% endfor %}
</ul>
これは「itemsの中身を一つずつ取り出して表示する」という意味です。紙に書いた名簿を上から順に読むようなイメージです。
5. extendsタグ|共通レイアウトを使い回す
extendsタグは、ページの共通部分をまとめるための仕組みです。ヘッダーやフッターを毎回書くのは大変なので、土台となるテンプレートを作ります。
{% extends "base.html" %}
{% block content %}
<p>ここにページごとの内容を書きます。</p>
{% endblock %}
これは「base.htmlを土台にして、この部分だけ差し替える」という意味です。家の間取りは同じで、家具だけ変えるような感覚です。
6. includeタグ|部品を読み込む
includeタグは、小さな部品を読み込むためのタグです。メニューや注意書きなど、あちこちで使う部分に向いています。
{% include "parts/menu.html" %}
これは「ここにmenu.htmlの内容を表示する」という意味です。コピーして貼り付ける代わりに、自動で読み込むイメージです。
7. テンプレート変数の表示方法
Djangoでは、ビューから渡されたデータをテンプレートで表示できます。そのときに使うのが {{ }} です。
<p>こんにちは、{{ user_name }} さん</p>
これは「user_nameの中身をここに表示する」という意味です。名前を書き込む欄が自動で埋まると考えると理解しやすいです。
8. Djangoテンプレートタグを使うメリット
Djangoテンプレートタグを使うことで、HTMLが整理され、修正が簡単になります。また、プログラムの処理と見た目を分けられるため、初心者でも混乱しにくくなります。
特にif・for・extends・includeは、Djangoテンプレートの基本中の基本です。これらを理解するだけで、多くのWebページが作れるようになります。