投稿

[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 の下でライセンスされています。