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

AI活用エンジニアへの道

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

  • コラム
  • 生成AI
  • プログラミング
    • Python入門
    • Flask入門
    • Django入門
  • プロフィール
Home / プログラミング / Flask / Flaskでのテンプレートの継承のやり方についてまとめました~block, extends~

Flaskでのテンプレートの継承のやり方についてまとめました~block, extends~

1 テンプレートの継承を用いる。
2 関連記事

Flaskのテンプレートでも別のテンプレートを継承することができる。
テンプレートを継承することで、共通の機能(bootstrap, jqueryなどライブラリの読込み、その他)を1つのファイルに記述して共有することができる。
また、継承元で記述した内容を各継承先が利用することもできる(後述)

[rtoc_mokuji title="" title_display="" heading="h3" list_h2_type="" list_h3_type="" display="" frame_design="" animation=""]

テンプレートの継承を用いる。

テンプレートでの継承は、以下のようにする。

・継承元

{% block 名前 %}
:
{% endblock %}

・継承先

{% extends 継承元のファイル名 %}
{% block 名前 %}
: # 継承元の内容を再定義しなおす
{% endblock %}

 
また、継承元の{% block 名前 %} ~ {% endblock %}間で記述した内容を継承先でも利用することができて、それには、{{ super() }} を用いればよい。
以下、テンプレートの継承の具体例を記述した。

Example

  • テンプレートの継承元(base.html)
<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="utf-8">
        <title>{% block title %}MyPage{% endblock %}</title> <-- 継承先で定義したい内容は、block ○○ ~ endblockとする -->
    </head>
    <body>
        <header>
            <p>ヘッダー</p>
        </header>
        {% block content %} <-- 継承先で定義したい内容は、block ○○ ~ endblockとする -->
        {% endblock %}
    </body>
</html>

 

  • テンプレートの継承先(home.html)
{% extends "base.html" %} <!-- base.htmlを継承して利用する -->
{% block title %}Home - {{ super() }}{% endblock %}<!-- {{ super() }}で親クラスの値(この場合MyPage)を表示できる -->
{% block content %} <!-- {% block content %} ~ {% endblock %}とすることで、親クラスの該当する部分を上書くことができる -->
<h1>ホーム</h1>
{% endblock %}

 
このように、継承すると、親の定義をそのまま使いまわし、加えたい部分だけ加えることができる。
ちなみに、上のhome.htmlを実際に表示して、htmlを表示すると以下のようになる。

  • home.htmlのHTMLコード
<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="utf-8">
        <title>Home - MyPage</title><!-- home.htmlの定義とbase.htmlを合わせている -->
    </head>
    <body>
        <header>
            <p>ヘッダー</p><!-- ここは、base.htmlの定義内容 -->
        </header>
        <h1>ホーム</h1><!-- home.htmlの定義内容 -->
    </body>
</html>

 

  • ファイルの階層構造

 

  • 画面の表示結果


« Previous

テンプレートのfor, if, コメント文

Next »

テンプレートのフィルター


Flask入門記事一覧はこちら

関連記事

FlaskでFormを用いてPOSTリクエストを行い、送信された値を取得する
FlaskでFormを用いてPOSTリクエストを行い、送信さ…
Flaskでabortを用いてHTTPException例外を強制的に発生させる
Flaskでabortを用いてHTTPException例外…
Flaskで404, 500などのエラーハンドリングを行う方法についてまとめました
Flaskで404, 500などのエラーハンドリングを行う方…
flaskでリダイレクト処理を行う(flask.redirect)
flaskでリダイレクト処理を行う(flask.redire…
Flaskのテンプレートでurl_forを用いてリンク作成、画像表示を行う。
Flaskのテンプレートでurl_forを用いてリンク作成、…
Flaskのテンプレートのフィルターを自作する方法についてまとめました
Flaskのテンプレートのフィルターを自作する方法についてま…

Primary Sidebar

人気記事

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

特集記事

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

目次

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

Footer

利用規約