• Mémo Générer un template dynamiquement avec Jinja2

  • Les basiques

Installation :

pip install Jinja2

Les arguments trim_blocks=True et lstrip_blocks=True permettent de supprimer les retours à la ligne ajoutés lors du rendu. cf leur documentation.

mail.py

import os
from jinja2 import Environment, FileSystemLoader

BASE_DIR = os.path.dirname(os.path.abspath(__file__))

environment = Environment(loader=FileSystemLoader(BASE_DIR), trim_blocks=True, lstrip_blocks=True)
message = environment.get_template('template.html').render(
    name='Bob', 
    date='12 février'
)

template.html

<!DOCTYPE html>
<html lang="fr">
<head>
  <meta charset="UTF-8">
</head>
<body>
<p>Salut {{ name }},</p>
<p>Bonne et heureuse année !</p>
<p>Notre prochaine réunion est le {{ date }}, je compte sur toi !</p>
<p>A bientôt,</p>
<p>p2m3ng</p>
</body>
</html>

En sortie :

<!DOCTYPE html>
<html lang="fr">
<head>
  <meta charset="UTF-8">
</head>
<body>
<p>Salut Bob,</p>
<p>Bonne et heureuse année !</p>
<p>Notre prochaine réunion est le 12 février, je compte sur toi !</p>
<p>A bientôt,</p>
<p>p2m3ng</p>
</body>
</html>


6 février 2019 00:59