Komentáře k článku
web.py – šablonovací systém

Šablonovací systém je důležitou součástí webového frameworku, proto se dnes budeme věnovat šablonovacímu systému web.py – Templatoru. Vypíšeme si hlavní konstrukce, řekneme si něco o slučování šablon a vše si předvedeme na příkladech.
nejsnadnější syntaxe
Nikdy jsem nepochopil, proč většina frameworků používá pro jednoduchý výpis proměnné poměrně složitou syntaxi jako Jinja {{ foo }}, Mako ${name}.
Proti tomu obyčejné $name v templatoru je geniálně jednoduché a o 2 až tři znaky kratší. (A takové PHP-intuitivní, vždyť vlastně i to PHP je (mělo být) spíš šablonovací systém, než programovací jazyk :-) )
Opravdu by mne zajímalo, co autory většiny frameworků vede k tomu volit tak složitou syntaxi?
Re: nejsnadnější syntaxe
Proc se ptas zde a nezeptas se autoru?
Re: nejsnadnější syntaxe
Důvod bych viděl v zjednodušení implementace – ať už vývojář sprcá template engine pár regulárními výrazy, nebo použije opravdový lexer a klon YACCu, když je jasně určený levý a pravý delimiter, snadněji se to parsuje. A že jsou zrovna tolik oblíbené kudrnaté závorky, je tím, že se v HTML moc nevyskytují.
Protoze nestačí jenom $var, ale je potřeba htmlspecialchars($var, ENT_QUOTES);
Re:
Jde spíš jen o syntaxi, Python se dá všelijak přiohnout.
‚
Viz třeba způsob jakým Templetor volá konkrétní šablonu
render.informace.kontakt()
namísto obvykléhorender("informace/kontakt.html")
. Konkrétně za tímto musí být „nadbytečný“ kód navíc, který pomocí getattr slepí cestu k šabloně, ale to by snad nemuselo až tak vadit, při použití dobrého cachování.Trochu jsem se chtěl na web.py podívat, ale verze pod Python 3 zlobí, respektive řekl bych, že vůbec není udělaná, jsou tam nefunkční importy. Zkoušel jsem to opravit, ale vzdávám to. Škoda, docela zajimavý framework.
Drobné překlepy?
Díky za další díl o web.py frameworku. Mám jen dva hnidopišské postřehy :-)
title
získanou z objektu content využijeme pro vypsání titulku stránky“ by vzhledem k dalšímu kódu měl být název proměnnétitulek
;souborycss
acsssoubory
.Ale jinak dobrá práce!