カテゴリ: Django 更新日: 2026/03/24

Djangoテンプレート継承の基礎|base.htmlを作るベストプラクティスを初心者向けに完全解説

Djangoテンプレート継承の基礎|base.htmlを作るベストプラクティス
Djangoテンプレート継承の基礎|base.htmlを作るベストプラクティス

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

生徒

「Djangoのテンプレートって、毎回同じHTMLを書かないといけないんですか?」

先生

「いいえ、Djangoにはテンプレート継承という仕組みがあって、共通部分を一つにまとめられます。」

生徒

「それって、ヘッダーやメニューを毎回書かなくていいってことですか?」

先生

「その通りです。base.htmlを作ることで、Webサイト全体をとても管理しやすくできます。」

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

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

Djangoテンプレート継承とは、HTMLファイル同士を親子関係のようにつなげて使う仕組みです。Webサイトでは、どのページにも共通して表示される部分があります。例えば、画面の一番上にあるタイトルやナビゲーションメニュー、下にあるフッターなどです。

テンプレート継承を使わない場合、これらをすべてのHTMLファイルに毎回書く必要があります。これはとても大変で、修正があったときにミスが起きやすくなります。テンプレート継承を使うことで、共通部分を一か所にまとめ、必要な部分だけを書けばよくなります。

2. base.htmlの役割と考え方

2. base.htmlの役割と考え方
2. base.htmlの役割と考え方

base.htmlは、テンプレート継承の「親」になるHTMLファイルです。家で例えると、家の設計図のような存在です。どの部屋にも共通する柱や壁があり、その中に部屋ごとの家具を配置するイメージです。

Djangoでは、このbase.htmlにサイト全体の共通レイアウトを書き、各ページはその内容を引き継いで使います。これにより、デザインの統一感が生まれ、管理も簡単になります。

3. base.htmlの基本的な書き方

3. base.htmlの基本的な書き方
3. base.htmlの基本的な書き方

base.htmlでは、blockという特別なタグを使います。blockは「子テンプレートが内容を差し込める場所」を意味します。ここでは、最も基本的なbase.htmlの例を見てみましょう。


<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>{% block title %}サイトタイトル{% endblock %}</title>
</head>
<body>
    <header>
        <h1>共通ヘッダー</h1>
    </header>

    <main>
        {% block content %}
        {% endblock %}
    </main>

    <footer>
        <p>共通フッター</p>
    </footer>
</body>
</html>

このように、blockで囲まれた部分が、子テンプレートで自由に書き換えられる場所になります。

4. 子テンプレートでbase.htmlを使う方法

4. 子テンプレートでbase.htmlを使う方法
4. 子テンプレートでbase.htmlを使う方法

次に、base.htmlを使って実際のページを作る方法です。子テンプレートでは、extendsという命令を使います。これは「このHTMLはbase.htmlを元にしています」という意味です。


{% extends "base.html" %}

{% block title %}
トップページ
{% endblock %}

{% block content %}
<p>ここにページごとの内容を書きます。</p>
{% endblock %}

このように書くことで、base.htmlのレイアウトをそのまま使いながら、必要な部分だけを変更できます。

5. blockを使うときのベストプラクティス

5. blockを使うときのベストプラクティス
5. blockを使うときのベストプラクティス

blockの名前は、誰が見ても分かるように付けることが大切です。例えば、content、title、header、footerなど、役割が想像できる名前にします。

また、base.htmlには必要以上にblockを増やしすぎないこともポイントです。初心者のうちは、「title」と「content」だけでも十分です。慣れてきたら、必要に応じて追加していくと混乱しにくくなります。

6. Djangoテンプレート継承でよくある失敗

6. Djangoテンプレート継承でよくある失敗
6. Djangoテンプレート継承でよくある失敗

初心者がよくつまずくポイントとして、extendsを一番上に書かないというミスがあります。extendsは必ずテンプレートの最初に書く必要があります。これを守らないと、正しく表示されません。

また、blockの名前をbase.htmlと子テンプレートで一致させることも重要です。名前が違うと、内容が反映されないので注意しましょう。

7. base.htmlを使うメリットまとめ

7. base.htmlを使うメリットまとめ
7. base.htmlを使うメリットまとめ

base.htmlを使ったテンプレート継承には、多くのメリットがあります。HTMLを何度も書かなくてよくなり、修正も一か所で済みます。Webサイト全体のデザインが統一され、見た目も整います。

Djangoテンプレート継承は、Webアプリ開発を楽にし、ミスを減らしてくれるとても大切な機能です。初心者のうちからbase.htmlを正しく使う習慣を身につけることで、後々の開発がぐっと楽になります。

カテゴリの一覧へ
新着記事
New1
Python
Pythonの条件式を短く書くコツ!複雑な条件を簡潔に記述するテクニック
New2
Django
Djangoテンプレート継承の基礎|base.htmlを作るベストプラクティスを初心者向けに完全解説
New3
Flask
Flaskで大規模アプリを成長させる!スケーラビリティ性能維持の設計ポイント
New4
Flask
FlaskでJSONレスポンスを返す方法!初心者でもわかるAPIの基本出力
人気記事
No.1
Java&Spring記事人気No1
Flask
Flask×Redisでタスク結果を保存・参照する仕組みを完全解説|初心者向け非同期処理とタスク管理
No.2
Java&Spring記事人気No2
Python
Pythonでタプルの最大値・最小値を取得する方法!max()・min()の使い方
No.3
Java&Spring記事人気No3
Django
Djangoマイグレーションの基本コマンド完全解説|makemigrationsとmigrateでDB設計を理解しよう
No.4
Java&Spring記事人気No4
Python
Pythonのリスト内包表記の使い方を完全ガイド!初心者でもわかる効率的なリスト作成法
No.5
Java&Spring記事人気No5
Flask
FlaskのAPIでファイルアップロードを受け付ける方法!初心者でもわかる解説
No.6
Java&Spring記事人気No6
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.7
Java&Spring記事人気No7
Flask
Flaskプロファイラでボトルネックを特定!Webアプリ高速化の決定版
No.8
Java&Spring記事人気No8
Python
Pythonの変数宣言と型ヒントの使い方!初心者向けに基礎をやさしく解説