見出し画像

Jinja2テンプレートを利用する

今日は、『つくってマスターPython』6-2 “FlaskでWebアプリケーション”で学んだことをアウトプットします。

Flaskには「Jinja2」というテンプレートエンジンが組み込まれいて、このテンプレートを利用することで、あらかじめ用意していたHTMLファイルに様々な処理を加えて読み込み表示させることができます。

Jinja2のテンプレートは、スクリプトのおかれた場所に「templates」というフォルダを用意し、その中に配置します。例として、以下のような内容を記述したテンプレートファイルをindex.htmlという名前でtemplatesに配置してみましょう。
<!DOCTYPE html>
<html lang=ja dir="ltr">
 <head>
   <meta charset="utf-8">
   <title>{{titel}}</title>
 </head>
 <body>
   <h1>{{title}}</h1>
   <p>{{message}}</p>
 </body>
</html>

Jinja2テンプレートでは、必要な値を{{}}記号でテンプレート内に埋め込むことができます。

作成したindex.htmlテンプレートを表示してみます。

from flask import Flask, render_template

app = Flask("helloapp")

@app.route("/")
def hello():
   return render_template('index.html',
                           title='Hello',
                           message='This is Jinja2 Template.')

if __name__ == '__main__':
   app.debug = True
   app.run(host='127.0.0.1')
テンプレートを読み込みレンダリングし表示する処理は、「render_template」という関数として用意されています。
render_template(  テンプレート名,  キー=値,  キー=値, ・・・・・)
第1引数にテンプレートファイル名を指定します。またテンプレートに値を渡す場合は、名前付き引数の形で記述します。例えば、title=’Hello’とすれば、テンプレート側の{{title}}に「Hello」という値が割り当てられるというわけです。

サポート、本当にありがとうございます。サポートしていただいた金額は、知的サイドハッスルとして取り組んでいる、個人研究の費用に充てさせていただきますね♪