Python - flask - テンプレート


 クラウディア


1. 概要
2. テンプレート作成
3. テンプレート表示
4. 表示
5. 参考サイト

1. 概要

 いちいち、コンテンツを「python」のソースで書くのは、めんどくさい。  「flask」には、「jinja2」というテンプレートエンジンがバンドルされています。  使ってみます。

2. テンプレート作成

 テンプレートは、プロジェクトルートに、「templates」というディレクトリを掘って、その中に作成するのがならわしらしい。  プロジェクトルートで。

mkdir -pv templates
vi templates/greet.html
 こんなん書いてみます。

<!DOCTYPE html>
<html>
<head>
<title>たいとる</title>
</head>
<body>
<h1>こんにちは、{{ name }}さん!</h1>
<ul>
{% for item in list %}
    <li>{{ item }}</li>
{% endfor %}
</ul>
</body>
</html>

3. テンプレート表示

 「flask」のソースにこんなん書きます。

from flask import Flask
from flask import render_template

app = Flask(__name__)

@app.route('/')
def home():
  return "Hello, World!"

@app.route('/greet')
def greet():
    user_name = "管理者"
    items = ["りんご", "バナナ", "みかん"]
    return render_template('greet.html', name=user_name, list=items)

if __name__ == "__main__":
  app.run()
 解説は、次項で・・・。

4. 表示

 下記へアクセスすると。

https://example.com/flask/greet
 ブラウザに下記が表示されます。

 これで、わかるのが。
 下記で、テンプレートクラスをインポート。


from flask import render_template
 下記で、テンプレートの呼び出し。  第一引数が、「templates」配下のテンプレートファイル名。  それ以降の引数が、テンプレート内にアクセスされ、「{{ }}」でテンプレート内に変数展開されます。

    return render_template('greet.html', name=user_name, list=items)
 テンプレートの記述。

{% for item in list %}
    <li>@{{ item }}</li>
{% endfor %}
 「for」文の開始と終了で、「list」を回して、1要素ずつ変数展開しているわけです。

5. 参考サイト

 本ページは、「Gemini」伍長および下記にサイトを参考にさせていただきました。
Jinja2 とは何か? Python のテンプレートエンジンについて解説

TikTok Shop 【リピート用プログラム】
AbemaTV 無料体験
損保との違い