Les Filtres (|)
Les filtres permettent de modifier l'apparence des variables. Ils s'utilisent avec un pipe |.
<!-- Mettre en majuscules -->
{{ "bonjour" | upper }} <!-- Affiche : BONJOUR -->
<!-- Mettre la première lettre en majuscule -->
{{ "jean-michel" | capitalize }} <!-- Affiche : Jean-michel -->
<!-- Taille d'une liste -->
{{ [1, 2, 3] | length }} <!-- Affiche : 3 -->
<!-- Valeur par défaut si la variable n'existe pas -->
{{ pseudo | default('Invité') }}
<!-- Tronquer un texte long -->
{{ article_content | truncate(50) }}
Tu peux même enchaîner les filtres : {{ text | striptags | title }}.
Les Macros (Les fonctions du HTML)
Les macros sont comme des fonctions Python, mais pour générer du HTML répétitif. Imaginons que tu as besoin d'afficher des champs de formulaire de la même façon partout.
- Définir la macro (souvent dans un fichier à part, ex:
macros.html) :
{% macro input(name, value='', type='text', size=20) %}
<div class="field">
<label for="{{ name }}">{{ name }}</label>
<input type="{{ type }}" name="{{ name }}" value="{{ value|e }}" size="{{ size }}">
</div>
{% endmacro %}
- L'utiliser dans ton template :
{% from 'macros.html' import input %}
<form>
{{ input('username') }}
{{ input('password', type='password') }}
</form>
C'est super puissant pour éviter d'écrire 50 fois les mêmes <div>, <label>, <input>...