Flask Academy · レッスン

子ページでベースを拡張する

extendsを使い、ページごとにブロックを埋めます

レッスン 2/413 ステップ

「子ページでベースを拡張する」はCoddyKit上の無料Flask Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはFlask Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Flask Academyコースには全4レッスンが含まれています。

Connect a Page to the Base

子ページでは骨格を繰り返しません。ベースをextendsすると宣言し、変更が必要なblockだけを埋めます。🔗

The extends Tag

子テンプレートの1行目ではextendsを使って親レイアウトを指定します。これにより、Jinja2はレンダリング前にベースを継承します。

{% extends "base.html" %}

extends Must Come First

extendsタグは、子ファイルの最初に記述する必要があります。その前にマークアップを置くと継承が壊れ、テンプレートエラーが発生します。

Override a Block

差し込み口を置き換えるには、子テンプレートで同じ名前のblockを再宣言します。そこに記述した内容が、ベースのデフォルトの代わりに表示されます。

{% block title %}Dashboard{% endblock %}

A Complete Child Page

このchild templateはbase.htmlをextendsし、2つのblockを上書きしています。ページの残りの部分は親レイアウトからそのまま取得されます。

{% extends "base.html" %}
{% block title %}Home{% endblock %}
{% block content %}
  <h1>Welcome</h1>
{% endblock %}

Skip Blocks You Like

変更したいblockだけを上書きします。省略したblockには、base templateで定義されたデフォルトの内容が残ります。

Reuse Parent Content

上書きしたblockの中でsuper()を呼び出すと、親blockの内容を取り込み、その周囲に独自の内容を追加できます。

{% block content %}{{ super() }}<p>Extra</p>{% endblock %}

Render the Child, Not the Base

viewでは子テンプレートのパスを返します。Flaskはベースを継承する子テンプレートをレンダリングするため、base.htmlを直接呼び出すことはありません。

return render_template("home.html")

Block Names Must Match

上書きが機能するのは、子テンプレートのblock名がベースのblock名と完全に一致する場合だけです。入力ミスがあると、親のデフォルトがそのまま残ります。

One Base, Many Children

多数のページで同じbase.htmlをextendできます。各子ページにはそのページ固有のマークアップだけを記述するため、内容を小さく保てます。

Inheritance Saves You

ベースのヘッダーを一度変更するだけで、すべての子ページがすぐに更新されます。この連鎖こそ、テンプレートinheritanceの本当の力です。🚀

Quick Check

extendsタグは、子テンプレートのどこに記述する必要がありますか?

Recap: Extending Pages

子ページはベースをextendし、一致するblockを上書きできます。また、super()を使って親の内容を再利用できます。これで、1つのベースから多くのページを作れます。🎯

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「子ページでベースを拡張する」レッスンは無料ですか?

はい。「子ページでベースを拡張する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Flask Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Flask Academyコースには全4レッスンが含まれています。

「子ページでベースを拡張する」で何を学びますか?

extendsを使い、ページごとにブロックを埋めます ブラウザで直接実行するハンズオンコードでFlask Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Flask Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのFlask Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「子ページでベースを拡張する」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このFlask Academyレッスンでコードを書いて実行できますか?

はい。すべてのFlask Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ブロックを持つベーステンプレートを定義する
  2. 子ページでベースを拡張する
  3. 再利用可能なパーシャルをインクルードする
  4. 繰り返し使うマークアップをマクロにする
← Flask Academyに戻る