Les gabarits

Un gabarit : du HTML et des emplacements ; afficher une variable, boucler, tester, inclure un fragment, hériter d'une mise en page, et l'échappement automatique des valeurs.

  • 25 cartes
  • 5 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Mises en situation
  5. Comprendre

Quelques cartes du deck

  • Gabarit : de quoi s'agit-il ?

    Voir la réponse

    Fichier de HTML contenant des emplacements et des instructions simples, qu'un moteur remplit avec des données pour produire une page.

    Le HTML s'écrit une fois, les données changent à chaque requête. <h1>{{ titre }}</h1> donne <h1>Bonjour</h1> quand titre vaut Bonjour.

  • Les articles sont Stylo (stock 3), Cahier (stock 0) et Règle (stock 5). Quel HTML ce gabarit produit-il ?

    ```html
    <ul>
    {% for a in articles %}
    {% if a.stock > 0 %}
    <li>{{ a.nom }}</li>
    {% endif %}
    {% endfor %}
    </ul>
    `

    • Deux éléments li, Stylo et Règle
    • Trois éléments li, le test if ne faisant que masquer le Cahier à l'écran
    • Trois éléments li, celui du Cahier restant vide
    • Un seul élément li, Stylo, car if interrompt toute la boucle
    Voir la réponse

    Deux éléments li, Stylo et Règle

    La boucle passe sur les trois articles, et le if décide à chaque tour d'écrire ou non la ligne. Le Cahier n'apparaît pas du tout dans le HTML envoyé, il n'est pas seulement caché.

  • Un moteur de gabarits remplit les … d'un document HTML avec les données que lui transmet le ….

    Voir la réponse

    Un moteur de gabarits remplit les emplacements d'un document HTML avec les données que lui transmet le contrôleur.

    Le moteur ne va pas chercher les données lui-même : il reçoit un dictionnaire de variables, par exemple articles et titre, et le rend sous forme de HTML.

  • Héritage de gabarits : de quoi s'agit-il ?

    Voir la réponse

    Mécanisme par lequel un gabarit reprend la mise en page d'un autre et n'en remplace que certaines zones.

    L'en-tête, le menu et le pied de page vivent dans un seul gabarit de base, {% extends "base.html" %} suffit aux pages. Changer le menu se fait en un seul endroit.

  • Le pied de page, avec le lien des mentions légales, est copié dans quarante gabarits. Changer ce lien oblige à quarante modifications. Que faire ?

    • Le construire en HTML dans le contrôleur et le passer en variable à chaque page
    • Garder les copies et les modifier avec un remplacement de texte global à chaque changement
    • Le charger dans le navigateur par JavaScript depuis un fichier à part
    • Le placer dans un gabarit de base dont les pages héritent
    Voir la réponse

    Le placer dans un gabarit de base dont les pages héritent

    Une mise en page commune se règle par héritage : le pied de page vit une fois dans la base. Du HTML fabriqué dans le contrôleur mêle présentation et logique, et obligerait à désactiver l'échappement pour l'afficher.