技術雑記帳兼日記帳

AWS、Python、Terraformの使い方をコッソリ

flask テンプレート include

はじめに

extendsとblockと似たような機能でincludeを解説する。
こちらも複数のHTMLを使い回すのに便利。

準備

下記のファイルを作成する。

  • render.py
from flask import Flask, render_template, request
app = Flask(__name__)

@app.route('/start/')
def login():
    return render_template('body.html')

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=80)
  • body.html
<header>
  {% include "header.html" %}
</header>

<body>
  <div>
  <p>ボディのコンテンツ.</p>
  </div>
</body>

<footer>
  {% include "fotter.html" %}
</footer>
  • header.html
<p>ヘッダー</p>
  • fotter.html
<p>フッター</p>

実行結果

今回もスクリーンショットで確認する。

f:id:halhalhal1:20210327203928p:plain

実際のHTML

<header>
  <p>ヘッダー</p>
</header>

<body>
  <div>
  <p>ボディのコンテンツ.</p>
  </div>
</body>

<footer>
  <p>フッター</p>
</footer>


includeの箇所が置き換わっていることがわかる。


まとめ

固定的な表示を行いたい画面を作るときに便利そう。
extendsもそうだけど、どちらも単純に置換するだけなのでちゃんとHTMLの文法で書くと混ざってしまうのが難点かな。
使い回すHTMLはパーツとして割り切って書いたほうがスッキリするかも。