子ページでベースを拡張する
extendsを使い、ページごとにブロックを埋めます
「子ページでベースを拡張する」は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フィードバックを取得できます。ローカル設定は不要です。