カテゴリ: Django 更新日: 2026/02/13

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

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

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

生徒

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

先生

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

生徒

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

先生

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

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

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

Djangoテンプレートとは、Webページの見た目(画面に表示される部分)を作るための仕組みです。私たちが普段インターネットで見ているWebサイトは、文字・画像・レイアウトなどで構成されていますが、その基本となっているのがHTMLです。

Djangoでは、このHTMLをそのまま使いながら、Pythonで作ったプログラムの結果を画面に表示できます。つまり「デザインはHTML」「中身のデータはPython」という役割分担ができるのが、Djangoテンプレートの大きな特徴です。

たとえば、同じレイアウトで「名前」や「メッセージ」だけが違うページを何枚も作りたい場合を考えてみましょう。毎回HTMLをコピーして書き換えるのは、とても手間がかかります。Djangoテンプレートを使えば、決まったHTMLの形はそのままにして、表示する文字だけを後から差し替えることができます。

これは、ひな形の書類に名前や日付だけを書き足す感覚にとても近いです。プログラミング未経験の方でも、「ここが画面の型で、ここに文字が入るんだな」とイメージしやすい仕組みになっています。


<h1>こんにちは、○○さん</h1>
<p>これはDjangoテンプレートの画面イメージです。</p>

このように、まずは「テンプレート=画面の設計図」と考えると、Djangoの仕組みがぐっと理解しやすくなります。

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
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
New2
Flask
Flaskアプリのセキュリティ対策まとめ!初心者向けに基本をやさしく解説
New3
Flask
FlaskでCookieを安全に使う方法!HttpOnly・Secureフラグの使い方を徹底解説
New4
Flask
Flaskで外部APIと連携する方法!requestsライブラリの使い方を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonでトランザクション処理を実装する方法を完全解説!commit・rollbackで安全なSQL操作
No.2
Java&Spring記事人気No2
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.3
Java&Spring記事人気No3
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.4
Java&Spring記事人気No4
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
No.5
Java&Spring記事人気No5
Flask
Flaskとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.6
Java&Spring記事人気No6
Flask
Flaskで開発中にデータベースを初期化する方法!初心者でもわかる便利なTips
No.7
Java&Spring記事人気No7
Flask
Flask‑RESTfulでREST APIを構築する手順まとめ!初心者向けにやさしく解説
No.8
Java&Spring記事人気No8
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本