[Python 100日チャレンジ] Day 83 - Jinja2テンプレート
FlaskのJinja2テンプレートでHTMLに変数、条件分岐、繰り返しを埋め込む方法を学びます。
[Python 100日チャレンジ] Day 83 - Jinja2テンプレート
Jinja2とは
Jinja2は、FlaskでHTMLを動的に生成するためのテンプレートエンジンです。Python側から渡した値をHTML内で表示できます。
1
2
3
4
5
from flask import render_template
@app.route("/")
def home():
return render_template("index.html", name="Aki")
変数を表示する
1
<h1>Hello, {{ name }}</h1>
Jinja2の二重波括弧の中に変数名を書くと、テンプレートに値を埋め込めます。
繰り返し
1
2
3
4
5
<ul>
{% for post in posts %}
<li>{{ post.title }}</li>
{% endfor %}
</ul>
記事一覧や商品一覧の表示に使います。
条件分岐
1
2
3
4
5
{% if user %}
<p>{{ user.name }}</p>
{% else %}
<p>Please log in.</p>
{% endif %}
ログイン状態やデータの有無によって表示を変えられます。
今日のゴール
Jinja2を使うと、PythonのデータをHTMLとして表示できます。変数、for、ifを使えるようになると、Webページが一気にアプリらしくなります。
この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。
