Jusqu'à maintenant, on renvoyait du HTML moche directement dans nos fonctions Python (return "hello").
Mais imagine écrire tout le code HTML d'une page Facebook dans un return... L'enfer. 😱
C'est là qu'interviennent les Templates. Flask utilise un moteur de template super puissant appelé Jinja2.
Le principe
Tu crées des fichiers HTML séparés (dans un dossier templates), et tu y insères des "trous" que Python va remplir.
La Syntaxe de base
Il y a deux types de balises principales dans Jinja :
{{ variable }}: Pour afficher quelque chose.{{ user.name }}{{ 4 + 4 }}(Oui, on peut faire des maths !)
{% commande %}: Pour la logique (boucles, conditions...).{% if user.is_logged_in %}{% for item in items %}
Où mettre mes fichiers ?
Par défaut, Flask cherche dans un dossier nommé templates au même niveau que ton fichier app.py.
/mon_projet
app.py
/templates
index.html
contact.html
Si tu le mets ailleurs, Flask sera perdu (sauf si tu changes la config, mais restons standards).