Afficher des variables c'est bien, mais la puissance vient de la logique.
Les Conditions ({% if %})
{% if user.is_admin %}
<button>Supprimer le site</button>
{% elif user.is_moderator %}
<button>Supprimer le commentaire</button>
{% else %}
<p>Vous n'avez aucun pouvoir ici.</p>
{% endif %}
N'oublie jamais le {% endif %} à la fin ! C'est l'erreur numéro 1 des débutants.
Les Boucles ({% for %})
Idéal pour afficher une liste d'articles, de produits, d'utilisateurs...
Coté Python :
@app.route('/shop')
def shop():
fruits = ["Pomme", "Banane", "Kiwi"]
return render_template('shop.html', liste_fruits=fruits)
Coté HTML :
<ul>
{% for fruit in liste_fruits %}
<li>{{ fruit }}</li>
{% else %}
<li>Désolé, plus de fruits ! (S'affiche si la liste est vide)</li>
{% endfor %}
</ul>
Le bonus loop
Dans une boucle for, Jinja te donne accès à une variable magique loop.
{{ loop.index }}: Compte tours (commence à 1).{{ loop.index0 }}: Compte tours (commence à 0).{{ loop.first }}: Vrai si c'est le premier tour.{{ loop.last }}: Vrai si c'est le dernier tour.
{% for fruit in liste_fruits %}
<p>{{ loop.index }}. {{ fruit }}
{% if loop.first %}(Mon préféré !){% endif %}
</p>
{% endfor %}