Dazoot Software

RSS 2.0
Catalin Constantin in How to | Niciun comentariu

Python Template Engine

Am avut de facut zilele astea o mini aplicatie in care la un moment dat trebuia sa generez un raport in format HTML si sa il tirmit pe mail.
Cum partea cu rapotrul nu era “primordiala” am zis sa incerc sa folosesc un light template engine. M-am gandit la “Airspeed python template” care are sintaxa 100% compatibila cu Velocity din Java.
Site-ul nu prea mergea, dar cum tot “template” engine-ul este intr-un singur fisier, am reusit sa il iau direct din “Trac SVN Browser”.
Bon. Ma apuc sa scriu template-ul, pana ajung la CSS. In velocity tot ce incepe cu # este considerat ca fiind template “tag” si cum in CSS folosesti # cand definesti stilurile, chestia a devenit problematica.

Varianta 1: pui \# in fiecare loc unde apare # si nu face parte din “Velocity”. Urat. Nu mi-a placut.

Varianta 2: caut un {literal}{/literal} a la Smarty in Velocity. Citesc User Guide de la Velocity: NIMIC. Ma uit prin unit tests la airspeed: NIMIC. Deja devenisem “stresat” de mica problema. Sa pierzi timp pe “template engine” cand nu este o PARTE mare din aplicatie.

Am decis sa renunt la Airspeed si sa incerc ceva mai OK. Kid /Genshi nici nu se punea problema. Nu vroiam sintaxa XML, si vroiam sa fie RAPIDA generarea output-ului.

Myghty.org. De ceva vreme tot cochetez cu Pylons Python Framework care are ca default template engine, Myghty. Am zis: ok, asta e un moment BUN sa folosesc timpul de “serviciu” sa “invat/testez” o chestie noua, mai ales ca intr-un viitor foarte apropiat o sa intru putin mai adanc in Pylons.

Surpiza placuta de care am dat pe myghty.org a fost Makotemplates. Este de departe cel mai Pythonic template engine ever. Este super usor de inteles si de “butonat” si pe deasupra este extrem de rapid.
Cod de genul:

% for i in range(0, 100):
i = ${i}
% endfor

pare destul de Python, dupa parerea mea.

Stii python ? Stii si Makotemplates.
Concluzia: Try Mako, Try Pylons.

Etichete: , , ,