Exercices Concepts Web & Django Moteur de templates complet
🎉

Bravo!

Avancé 🧠 Fondamentaux 30 XP 0 personnes ont réussi

Moteur de templates complet

Tu vas combiner les deux fonctionnalités précédentes pour créer un mini-moteur de templates.

Ta fonction render(template, contexte) doit gerer :
1. Les blocs conditionnels {%% if variable %%}...{%% endif %%}
2. La substitution de variables {{ variable }}

L'ordre est important : traite les conditions EN PREMIER, puis les substitutions de variables. Pourquoi ? Parce que le contenu d'un bloc conditionnel peut lui-meme contenir des {{ variables }} a remplacer.

Exemple :
render('Bonjour {{ nom }}{%% if admin %%} [ADMIN]{%% endif %%}', {'nom': 'Alice', 'admin': True})
renvoie 'Bonjour Alice [ADMIN]'

Tests (2/4)

Variables et condition
r = render('Bonjour {{ nom }}{% if admin %} [ADMIN]{% endif %}', {'nom': 'Alice', 'admin': True})
assert r == 'Bonjour Alice [ADMIN]'
Condition fausse
r = render('Bonjour {{ nom }}{% if admin %} [ADMIN]{% endif %}', {'nom': 'Bob', 'admin': False})
assert r == 'Bonjour Bob'

+ 0 tests cachés

Indices (3 disponibles)

solution.py