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>
実行結果
今回もスクリーンショットで確認する。
実際のHTML
<header> <p>ヘッダー</p> </header> <body> <div> <p>ボディのコンテンツ.</p> </div> </body> <footer> <p>フッター</p> </footer>
includeの箇所が置き換わっていることがわかる。
まとめ
固定的な表示を行いたい画面を作るときに便利そう。
extendsもそうだけど、どちらも単純に置換するだけなのでちゃんとHTMLの文法で書くと混ざってしまうのが難点かな。
使い回すHTMLはパーツとして割り切って書いたほうがスッキリするかも。