【Django】extendsを使って、あるファイルから別のtemplateを呼び出す方法

コードcode プログラミング

Pythonに限りませんが、多くのプログラミング(フレームワーク)ではhtmlをいくつかのファイルに切り分けて、使い回しができるように作るのが基本です。

Djangoの場合だと、基本となるhtmlを作って、それを他のhtmlファイルでも呼び出すことでコードの重複を避けるようなしくみになっています。

たとえば、以下のようなベースとなるhtmlがあったとしましょう(Bootstrapより転用)。

 

base.htmlはトップページ用のhtmlファイルとしましょう。ここで重要なのは bodyタグ直下にある

 

というコードです。

ここで、たとえば mypage.html というマイページ用のhtmlファイルを作りたいとき、わざわざ最初から同じコードを書くのは無駄ですよね。ファイルサイズも大きくなるし、読み込み速度も遅くなるのでパフォーマンスも下がります。

ですから、最初に作った base.html を mypage.html ファイルにも使い回すことで、コードの重複を避けることができます。

Djangoでは、templates というフォルダをつくり、そのなかにテンプレートのファイルを格納することで呼び出し可能になります。

mypage.htmlは以下のように書くことが可能です。

先頭の {% extends ‘app/base.html’%}  は外部ファイルである base.html を呼び出しています。extends は英語で「拡張」という意味がありますが、プログラミングにおいては「継承する、引き継ぐ」という意味です。

さきほど、base.html の中に

というコードを書きました。mypage.html で書いた

というのが {% block content %} 〜 {% endblock %} に埋め込まれます。

こうすることで、mypage.htmlの中身がスッキリ書けますし、コードの重複をなくすことも可能になるんですね。

プログラミングPython
スポンサーリンク
シェアする
この記事が気に入ったら
いいね!しよう
最新情報をお届けします。
サイト運営者
厳しい現実

30歳からFXのデイトレを始めました。移動平均線とMACDを使ったシンプルな手法。目標は月収30万円!「大数の法則」を信じて、淡々と同じトレードをこなすスタイルを目指しています。

厳しい現実をフォローする
厳しい現実™【FXトレード日誌】

コメント