- 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 のテンプレートエンジンについて解説」
|