Aller au contenu principal

3 formations sont désormais disponibles : Python, Flask et JS.

Aller au contenu principal

Structures de contrôle (If, For)

Apprendre Flask : Le Guide Ultime
4 min de lecture
Gratuit

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 %}