pip install templite
from templite import Templite template = """ This is the place where all the ${variable}$ go... The time goes fast but everything is slow... ${for woho in whohos:}$ ${woho}$ ${:end-for}$ """ t = Templite(template) print t.render(variable="junkies", whohos=["woo hoo", "woo hoo", "woo hoo hoo hoo"]) |
Ce qui donne :
This is the place where all the junkies go... The time goes fast but everything is slow... woo hoo woo hoo woo hoo hoo hoo
Je n’ai pas écrit templite, je l’ai juste mis sur pypi et github en respectant sa paternité car il restait sous forme de snippet perdu depuis trop longtemps.
Vous pouvez le piper mais vraiment, ce n’est pas obligatoire, comme peewee et bottle, il tient dans un fichier, donc on peut juste dumper le module dans son code source.
Question newbee d’or:
On s’en sert à quelle occasion?
(J’ai ne l’ai pas ecriT, vous pouvez le pipeR)
Pour toute opération de templating qu’on ferait avec jinja ou genshi ou mako… Mais en plus léger. Maintenant j’ai conscience que pas mal de gens ne savent pas ce que c’est qu’un template, mais ce n’est pas le but de l’article. Un truc de plus à rajouter à ma todo list : “qu’est-ce qu’un template et à quoi ça sert”.
Tiens, intéressant, j’en cherchait un il y a un moment.
Sur pypi et github, dans l’introduction:
” I’m am not the author ”
Le “am” et le “‘m” sont justes tous les deux, mais pas à la fois :-)
Merci, je cherchais également un truc du même genre il y a quelques temps !
Il y a un soucis avec ce moteur de template, il ne preserve pas l’indentation si le motif contient des newlines (il retourne a la ligne au lieu de rester aligné au niveau défini dans le template => pas correct).
J’ai essayé avec la plupart des moteurs de template (Mako, jinja2, etc.), ils se plantent tous de la meme facon. Le seul qui a le comportement attendu c’est StringTemplate.
D’un part, c’est un moteur de template minimaliste, donc franchement, cherche la petite bête, c’est mesquin. En plus, templite vient avec la fonction emit() spécifiquement pour adresser ce problème.
Ah bien vu Eliot.