■ はじめに
Webフレームワーク 「Flask(フラスク)」の 標準のテンプレートエンジンが、「jinja2(神社2)」らしいので使ってみた
補足
* 以下の動画がキャンペーンで「Flask」やってるので勉強してみる
https://paiza.jp/works/search_courses/2002
■ サンプル
例1)Hello World
main.py
#!/usr/bin/env python # -*- coding: UTF-8 -*- # ★Point1★「render_template」をインポートする from flask import Flask, render_template app = Flask(__name__) @app.route("/") def hello_world(): name = "Mike" names = ["Tom", "Kevin", "Smith"] # ★Point2★「render_template()」でテンプレートを呼び出す return render_template("index.html", name_val = name, name_vals = names) if __name__ == "__main__": app.run()
templates/index.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>Flask - Demo</title> </head> <body> {% if name_val %} <h1>Hello, {{ name_val }}</h1> {% else %} <p>Hello World!</p> {% endif %} {% for name in name_vals: %} <p>Hello, {{ name + " from USA" }}!!!</p> {% endfor %} </body> </html>
実行コマンド
python main.py # 後は、ブラウザで以下にアクセスする
例2 共通テンプレートを作る
main.py
例1の「main.py」と同じなので、省略
templates/common-template.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>Flask - Demo</title> </head> <body> <h1>Template Sample</h1> {% block content %} {% endblock %} </body> </html>
templates/index.html
{% extends "common-template.html" %} {% block content %} {% if name_val %} <h1>Hello, {{ name_val }}</h1> {% else %} <p>Hello World!</p> {% endif %} {% for name in name_vals: %} <p>Hello, {{ name + " from USA" }}!!!</p> {% endfor %} {% endblock %}
関連記事
標準テンプレートエンジン
https://dk521123.hatenablog.com/entry/2020/01/07/212138
Jinja2 ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2024/10/19/000848
Jinja2 ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2024/10/18/001757
Jinja ~ マクロ ~
https://dk521123.hatenablog.com/entry/2023/11/28/235951