カテゴリ: Django 更新日: 2026/01/22

Djangoテンプレート入門|初心者でも理解できる基本構造と仕組み

Djangoテンプレート入門|初心者でも理解できる基本構造と仕組み
Djangoテンプレート入門|初心者でも理解できる基本構造と仕組み

先生と生徒の会話形式で理解しよう

生徒

「Djangoって聞いたことはあるんですが、画面に文字を表示する仕組みがよくわかりません…」

先生

「Djangoでは、画面に表示する部分をテンプレートという仕組みで作ります。HTMLを使って、見た目を担当する場所ですね。」

生徒

「HTMLだけでいいんですか?プログラムは書かなくて大丈夫なんでしょうか?」

先生

「基本はHTMLですが、Django専用の書き方を少しだけ使います。ゆっくり説明しますよ。」

1. Djangoテンプレートとは何か

1. Djangoテンプレートとは何か
1. Djangoテンプレートとは何か

Djangoテンプレートとは、Webページの見た目を作るための仕組みです。普段インターネットで見ているページは、文字や画像、レイアウトで構成されていますが、その土台となるのがHTMLです。Djangoでは、このHTMLをそのまま使いながら、プログラムの結果を画面に表示できます。

たとえば、名前を表示するページを考えてみましょう。毎回HTMLを手で書き直すのは大変ですが、Djangoテンプレートを使えば、決まった形のHTMLに対して、あとから文字を差し込めます。これは、手紙のひな形に名前だけを書き足すようなイメージです。

2. テンプレートファイルの基本構造

2. テンプレートファイルの基本構造
2. テンプレートファイルの基本構造

Djangoのテンプレートは、.htmlという拡張子のファイルで作ります。中身は普通のHTMLとほとんど同じなので、パソコンに触ったことがない人でも、文章を書く感覚で理解できます。

以下は、もっともシンプルなDjangoテンプレートの例です。


<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Djangoテンプレート入門</title>
</head>
<body>
    <h1>はじめてのDjangoテンプレート</h1>
    <p>ここに文章が表示されます。</p>
</body>
</html>

この時点では、ただのHTMLと同じです。まずは「画面に表示する場所」と考えてください。

3. テンプレートで使う{{ 変数 }}

3. テンプレートで使う{{ 変数 }}
3. テンプレートで使う{{ 変数 }}

Djangoテンプレートの特徴は、{{ }}という記号を使って、プログラムから渡された値を表示できる点です。この中に書かれた名前を変数と呼びます。変数とは、文字や数字を一時的に入れておく箱のようなものです。

たとえば、名前を表示するテンプレートは次のように書けます。


<h1>こんにちは、{{ name }} さん</h1>

この{{ name }}の部分に、Pythonのプログラムから文字が渡されると、その内容が画面に表示されます。

4. ビューからテンプレートへ値を渡す

4. ビューからテンプレートへ値を渡す
4. ビューからテンプレートへ値を渡す

テンプレートだけでは値は表示されません。Djangoではビューという場所から、テンプレートにデータを渡します。ビューとは、画面に何を表示するかを決める係です。

以下は、とても簡単なビューの例です。


from django.shortcuts import render

def hello(request):
    data = {
        "name": "太郎"
    }
    return render(request, "hello.html", data)

ここでは、nameという箱に「太郎」という文字を入れて、テンプレートに渡しています。テンプレート側では、そのまま表示される仕組みです。

5. {% if %}で条件によって表示を変える

5. {% if %}で条件によって表示を変える
5. {% if %}で条件によって表示を変える

Djangoテンプレートでは、条件によって表示内容を変えることもできます。これは「もし〜なら」という考え方で、日常生活でもよく使っています。

たとえば、ログインしている人だけにメッセージを出す場合は、次のように書きます。


{% if user %}
<p>ようこそ、{{ user }} さん</p>
{% else %}
<p>ゲストとして閲覧しています</p>
{% endif %}

{% %}で囲まれた部分は、Djangoテンプレート専用の命令です。HTMLとは違う役割を持つ、と覚えておけば大丈夫です。

6. {% for %}で繰り返し表示する

6. {% for %}で繰り返し表示する
6. {% for %}で繰り返し表示する

同じ形のデータを何度も表示したいときは、forを使います。これは、名簿を上から順番に読み上げるようなイメージです。

以下は、名前の一覧を表示する例です。


<ul>
{% for name in names %}
    <li>{{ name }}</li>
{% endfor %}
</ul>

Python側で複数の名前を渡すと、自動的に同じHTMLが繰り返し作られます。手作業で書く必要がないので、とても便利です。

7. テンプレートの共通化とextends

7. テンプレートの共通化とextends
7. テンプレートの共通化とextends

Webサイトでは、どのページも同じヘッダーやフッターを使うことが多いです。Djangoテンプレートでは、共通部分をまとめて管理できます。

まず、共通の土台となるテンプレートを作ります。


<!DOCTYPE html>
<html>
<body>
    <header>共通ヘッダー</header>
    {% block content %}{% endblock %}
    <footer>共通フッター</footer>
</body>
</html>

そして、別のテンプレートでそれを利用します。


{% extends "base.html" %}

{% block content %}
<h1>ページごとの内容</h1>
{% endblock %}

この仕組みによって、見た目をそろえたまま、内容だけを自由に変えられます。初心者でも管理しやすい構造です。

カテゴリの一覧へ
新着記事
New1
Django
Djangoモデル入門|初心者が最初に知るべきORMの基本操作
New2
Python
Pythonの特殊メソッド(__str__ / __repr__ / __eq__)を便利に使う方法をやさしく解説
New3
Python
Pythonのリストとは?基本の使い方と作成・操作のやり方をやさしく解説
New4
Flask
Flaskのログをファイルに保存する方法!初心者でもわかる設定手順を徹底解説
人気記事
No.1
Java&Spring記事人気No1
Django
Djangoプロジェクトのディレクトリ構造を完全解説!初心者でも迷わないフォルダの見方
No.2
Java&Spring記事人気No2
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.3
Java&Spring記事人気No3
Python
Pythonで文字列を置換するには?replace()の使い方と正規表現の活用例
No.4
Java&Spring記事人気No4
Flask
FlaskアプリのSECRET_KEYの設定方法を完全ガイド!初心者でもわかるセキュリティ対策
No.5
Java&Spring記事人気No5
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.6
Java&Spring記事人気No6
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.7
Java&Spring記事人気No7
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
No.8
Java&Spring記事人気No8
Python
Pythonでディレクトリ操作を完全解説!作成・削除・一覧取得の基本