djangoでincludeを利用したテンプレートの継承は非常に便利です。
「ある特定のページにだけ表示をさせたいhtmlテンプレートがある!!」とか、「このページにだけは表示させたくない!!」とか、そんな時に便利なのが、この{% include %}レンプレートなのです。
必要に応じてincludeテンプレートを使用することができれば、テンプレートを使い回したり、配置をより柔軟にカスタマイズすることができ、効率的にdjangoでweb開発を行えます。
コンテンツ
環境
・django 2.2
特別なライブラリは不要です。
djangoに備え付けの機能です。
手順
ディレクトリ構造
1 2 3 4 5 |
└── sample ├── base │ └── base.html ├── content.html └── index.html |
includeで差し込むhtmlファイルを用意する
差し込むファイルを、content.htmlという名前で用意します。
content.html
1 2 3 4 5 6 7 8 |
<hr> <p>差し込まれるテンプレートです。</p> <ul> <li>includeは便利</li> <li>includeは簡単</li> <li>includeは分かり易い</li> </ul> <hr> |
注意点としては、不要なものはとことん排除し必要なコードのみにおさめます。
なぜなら他に影響を及ぼすかもしれないからです。
ベースとなるテンプレートを用意
土台となるテンプレートをindex.htmlという名前で用意します。
このテンプレートに先ほど作成した、content.htmlを差し込みます。
それでは実際に、includeを使用して差し込んだテンプレートになります。
sample/base/index.html
1 2 3 4 5 6 7 8 9 10 11 12 |
{% extends 'sample/base/base.html' %} {% block page_title %}サンプルトップページ{% endblock %} {% block header %} {% endblock %} <p>↓↓↓ここに差し込まれます。</p> {% include 'sample/content.html'%} <p>↑↑↑ここに差し込まれます。</p> {% block content %} {% endblock %} |
そして、実際に表示される画面はこのようになります。
以下はおまけですが、includeを使わないで表示するとこうなります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
{% extends 'sample/base/base.html' %} {% block page_title %}サンプルトップページ{% endblock %} {% block header %} {% endblock %} <p>↓↓↓ここに差し込まれます。</p> <hr> <p>差し込まれるテンプレートです。</p> <ul> <li>includeは便利</li> <li>includeは簡単</li> <li>includeは分かり易い</li> </ul> <hr> <p>↑↑↑ここに差し込まれます。</p> {% block content %} {% endblock %} |
これで理解ができたかと思います。
以上です。
最後に
いかがでしたでしょうか。
以上が、「【Django】includeを利用したテンプレートの継承」の紹介記事になります。
あらゆる場所で使用できますので、是非Djangoの開発に役立ててみてはいかがでしょうか?
プログラミング学習を効率良く進めるには…
私ヒロヤンがプログラミングを始めた頃は以下のような感じでした。
そしてネットで調べていくうちに膨大な時間が過ぎていきました。
私ヒロヤンの実体験より、プログラミングを効率的に学ぶために大切なことは以下のことだと考えています。
1. いつまでもダラダラとやらないで、目標を決定して短期集中する
2. マンツーマンで、わからない箇所は直ぐに質問をして即レスをもらう
.proでは私ヒロヤンが学習してきたプログラミング経験0からのpython/Django、その他webサイト・サービス開発のコースが用意されています。
カウンセリング自体は無料なので話を聞いてみるだけでもいかがでしょうか?
また以下のリンク先ではDjangoを教えてくれるスクールをまとめ紹介しています。
コメントを残す