7.6. Intégration de moteurs de modèles
Pour ceux qui sont familiers des moteurs de modèles, Karrigell rend leur intégration extrêmement simple. Deux moteurs sont disponibles à travers des fonctions intégrées, les autres peuvent être utilisés comme dans des scripts Python ordinaires
7.6.1 Substitution de chaînes de Python
AVERTISSEMENT: PythonStringSubst est remplacé par KT, et sera enlevé de la prochaine version de Karrigell
Ce sytème de modèle utilise la syntaxe de substitution de chaînes
qui a été introduite dans Python 2.4. Les fichiers de modèles utilisent
des emplacements de la forme $foo
Pour s'en servir dans des scripts, utilisez la fonction intégrée
PythonStringSubst(url,arg1=val1,arg2=val2...)
:
elle va récupérer le code source depuis le fichier à l'url indiquée,
et lui appliquer les arguments mots-clés
Par exemple, supposons que la source de modèle est
<HTML> <HEAD><TITLE>$titre</TITLE></HEAD> <BODY> $contenu </BODY> </HTML>
print PythonStringSubst(src_url, titre='Substitution de chaînes de Python', contenu='Bonjour tout le monde' )
sera :
<HTML> <HEAD><TITLE>Substitution de chaînes de Python</TITLE></HEAD> <BODY> Bonjour tout le monde </BODY> </HTML>
7.6.2 Cheetah
Si le moteur de modèles Cheetah est disponible, vous pouvez l'utiliser
de la même façon que ci-dessus, avec une fonction intégrée
Cheetah(url,arg1=val1,arg2=val2...)
.
url
est l'url du fichier de modèle, et les arguments mots-clés
sont utilisés pour produire le code HTML
7.6.3 Autres moteurs
Pour utiliser d'autres moteurs, vous devez appliquer leur syntaxe dans le script. Bien que les détails d'implémentation puissent varier, votre code aura probablement l'allure suivante :
import Template # ou déclenche une Exception # récupère la source depuis le fichier de modèle templateDef = open(template_file_name).read() # applique des mots-clés à la définition du modèle et imprime print Template(templateDef, arg1=val1,arg2=val2,...)