先ほどの「ユーザー名と購入金額を表示する」処理を、HTMLテンプレートとしてJinja2で書いたサンプルを示します。
処理内容
- ユーザー名
name = "Tanaka" - 金額
price = 1234.5 - 出力形式(HTML):
<p>Tanakaさんの合計金額は 1,234.50 円です。</p>
HTMLJinja2 HTMLテンプレート例
Python側コード
from jinja2 import Template
# HTMLテンプレート文字列
template_str = """
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>購入情報</title>
</head>
<body>
<p>{{ name }}さんの合計金額は {{ "{:,.2f}".format(price) }} 円です。</p>
</body>
</html>
"""
# テンプレートを作成
template = Template(template_str)
# データを渡してレンダリング
html_output = template.render(name="Tanaka", price=1234.5)
print(html_output)
Python出力されるHTML
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>購入情報</title>
</head>
<body>
<p>Tanakaさんの合計金額は 1,234.50 円です。</p>
</body>
</html>
HTML✅ ポイント
- テンプレート内でPythonの書式指定を直接使う場合は
{{ "{:,.2f}".format(price) }}のように書けます。 - Jinja2フィルタを使う方法もあり、例えばカスタムフィルタを定義して
{{ price | currency }}のように書くことも可能です。 - HTMLテンプレートにすることで、Webアプリやメール本文にそのまま利用でき、ロジックと表示を分離できます。


