• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
  • Skip to footer

AI活用エンジニアへの道

生成AI時代のエンジニアの生き方を考えるメディア(作成途中)

  • コラム
  • 生成AI
  • プログラミング
    • Python入門
    • Flask入門
    • Django入門
  • プロフィール
Home / プログラミング / Django / Djangoのテンプレート(html)の一部を共通化して継承する方法(extends, block, endblock)

Djangoのテンプレート(html)の一部を共通化して継承する方法(extends, block, endblock)

1 Djangoでテンプレートを共通化する方法
2 関連記事

Djangoでテンプレートを共通化する方法

一般的なサイトで、全ページ共通の部分がある場合(ヘッダー、jQuery等の読み込みなど)、ベースとなるファイルを用意して他のhtmlファイルはそのファイルを読み込むようにして利用する。

Djangoでも同様に全テンプレート共通の設定を記述したファイルを用意して、他のファイルはそのファイルを継承して、一部機能を共通化することができる

以下のように記述する

  • 継承元(共通化する)テンプレート
{% block 〇〇 %}
{% endblock %}
  • 継承先テンプレート
{% extends "app/継承元.html" %}
{% block 〇〇 %}
  HTML
{% endblock %}

実際に例を見ていきます

  • templates/basicapp/base.html
<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <title>
        {% block title_block %}
        <!-- この中は継承先で定義 -->
        {% endblock %}
        </title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
        <!-- Bootstrapの読み込み -->
    </head>
    <body>
        <h1>Home Page</h1>
        <div class="container">
        {% block body_block %}
        <!-- この中は継承先で定義 -->
        {% endblock %}
        </div>
    </body>
</html>

継承先のファイルでは、extendsで継承し、上で定義したtitle_blockとbody_block内を実装する

  • 継承先の実装1(templates/app/index.html)
<!DOCTYPE html>
{% extends "basicapp/base.html" %}
    {% block title_block %}
    INDEX
    {% endblock %}
    {% block body_block %}
<h1>Welcome</h1>
<h2>Hello World</h2>
    {% endblock %}
  • 継承先の実装2(templates/app/other.html)
<!DOCTYPE html>
{% extends "basicapp/base.html" %}
    {% block title_block %}
    OTHER
    {% endblock %}
    {% block body_block %}
<h1>Welcome to other</h1>
    {% endblock %}

このようにファイルを一部共有して継承することで、全ファイルにbootstrapやjQueryの読み込んだり、ヘッダーやフッターを書く必要がなくなる

関連記事

Pythonの型ヒント:コレクション型とOptional型の使い方
Pythonの型ヒント:コレクション型とOptional型の…
Python型ヒントについて、変数と関数の引数と戻り値に付与する基本的な書き方について
Python型ヒントについて、変数と関数の引数と戻り値に付与…
【まとめ】よく使うLinuxのショートカット11選
【まとめ】よく使うLinuxのショートカット11選
覚えておくべきLinuxコマンド50選
覚えておくべきLinuxコマンド50選
FlaskでFormを用いてPOSTリクエストを行い、送信された値を取得する
FlaskでFormを用いてPOSTリクエストを行い、送信さ…
Flaskでabortを用いてHTTPException例外を強制的に発生させる
Flaskでabortを用いてHTTPException例外…

Primary Sidebar

人気記事

  • 1
    ITエンジニアとしてスキルを高めるためのUdemy講…
  • 2
    PyCharm,IntelliJのおすすめプラグイン一覧
  • no image 3
    Python未経験だが、フリーランスの案件に採用さ…
  • 4
    アメリカのシリコンバレーでプログラミングを無…

特集記事

  • 1
    Cursorの使用のポイントとコツ(コード補完、イ…
  • 2
    ITエンジニアとしてスキルを高めるためのUdemy講…

目次

1 Djangoでテンプレートを共通化する方法
2 関連記事
StartCode ロゴ
AI時代のエンジニアを最速で育てる
法人向けIT研修で即戦力を育成しています。詳しくはお問い合わせください。
▶ 詳細はこちら
Django講座
【Udemy】Django入門講座(0からDjangoを学習: Python講座つき)
受講生6500人ほどの人気講座。<strong>View, Template, Model, Cla...
詳細 ▶

Footer

利用規約