Hlavní navigace

Šablony stránek pro Zope: další praktické příklady

Miloš Průdek

Webové aplikace (neboli dynamické webové stránky) vznikají často ve skriptovacích jazycích PHP nebo .ASP. Tyto jazyky poskytují velké množství užitečných funkcí, ale neoddělují výkonné (neboli logické) části programu od částí, které se starají o prezentaci dat. Oddělení logiky od prezentace je hlavním trendem moderních webových aplikací, protože usnadňuje údržbu a zpřehledňuje aplikaci.

V minulém dílu seriálu jsme viděli nové možnosti typu cesta. Dnes si ukážeme tento typ v dalších praktických příkladech. Zkuste si následující zdrojový kód uložit do šablony typcesta:

<p>Toto je <b tal:replace="here/title">Název složky</b></p> <p>Jsme na adrese: <b tal:replace="request/URL">URL</b></p> <p>Přihlášený uživatel: <b tal:replace="user/getUserName">Uživatel</b></p>

Šablonu typcesta můžete volat na všechny objekty ve složce /test.

http://localhos­t:8080/test/typ­cesta
http://localhos­t:8080/test/t1/typ­cesta
http://localhos­t:8080/test/t1/o­brazek1/typces­ta pokud máte v této složce obrázek s názvem obrazek1
http://localhos­t:8080/test/zis­k/typcesta

První řádek šablony typcesta používá pro umístění příkazu ZPT značku <b>. Ve zdrojovém kódu dynamické verze této stránky se ovšem značka <b> neobjeví, protože jsme použili tal:replacemísto tal:content. Když už je tedy značka <b> zbytečná, můžeme se bez ní obejít, aby nemátla webdesignera (ve statické verzi by byl text tučný, v dynamické nikoliv, a to by bylo docela matoucí). S výhodou lze použít značku <span>, která byla už dávno zavedena do normy jazyka HTML jako obecná strukturální značka. Obsah značky <span> totiž zobrazují i velmi staré prohlížeče, které nerozumějí parametrům definovaným pro tuto značku. Značka <span> nijak nemění vzhled textu.

Druhý řádek používá cestu request/URL pro zobrazení aktuální adresy požadavku HTTP. Objekt request je hodně zajímavý a často využívaný, a to nejen v Zope, ale obecně ve webovém programování. Reprezentuje požadavek HTTP, odeslaný klientským softwarem, tedy zpravidla webovým prohlížečem. Požadavek HTTP je vlastně žádost o zaslání webové stránky. Klientský software vkládá do požadavku různé zajímavé informace, další užitečné informace se v požadavku ocitnou i díky serverové straně, například přes Zope nebo případně z webového serveru Apache, jenž bývá někdy předřazen před samotný Zope.

My se podíváme, jak tento objekt vypadá konkrétně v Zope. Objekt requestmimo jiné zpřístupňuje také cesty request/form/ná­zev_formulářo­vé_proměnné a request/cookies. Tyto cesty jsou dále adresovatelné. Zkuste například cestu request/cooki­es/tree-s. Objeví se obsah cookie (sušenky) tree-s, kterou používá samotné Zope.

Podobně můžete zobrazit request/form/prij­meni, pokud by požadavek HTTP obsahoval formulářovou proměnnou prijmeni. Protože momentálně žádný webový formulář nemáme, můžeme simulovattento požadavek tak, že vložíme parametr přímo do URL:

http://localhos­t:8080/test/typ­cesta?prijmeni=No­vak

Požadavek HTTP je vůbec zajímavý. Zkuste vytvořit šablonu s názvem třeba req, která vám ho zobrazí celý:

<hr> <span tal:replace="structure request">požadavek HTTP</span> <hr>

Zobrazení celého požadavku HTTP je mimochodem velice užitečná metoda ladění. Výše uvedený řádek používejte jako první pomoc, jakmile se váš program nechová podle předpokladů.

Rekapitulace

Předchozí text se hemží zkratkami a názvy technologií, které tvoří Zope. Vyznat se v tomto bludišti není právě snadné. Pro vaše pohodlí uvedu jejich přehled, včetně technologií, které budou představeny v budoucích pokračováních. V příštím pokračování se na některé technologie podíváme blíže, aniž bychom ztratili ze zřetele centrum našeho zájmu – šablony ZPT.


Tabulka č. 433
Název
Název česky
Popis
Použití
ZPT, Zope Page Templates
Šablony stránek
Prezentační jazyk Zope
Prezentace dat získaných přímo ze ZODB, ze skriptů Python, ZSQL, ZCatalog a z Externích metod
ZMI ZMI
Ovládání Zope
Díky ZMI (Zope Management Interface) se Zope ovládá přes webový prohlížeč.
Python Script
Skripty v Pythonu
Logický jazyk Zope
Logická příprava dat pro prezentaci. Zpracování dat. Vhodné pro krátké a středně velké programy v Pythonu.
External Methods
Externí metody
Logický jazyk Zope Mohou přímo volat libovolné externí programy. Vhodné pro středně velké a rozsáhlé programy v Pythonu.
Products
Produkty
Hotové stavební cihly
Hotové prvky, které mohou sloužit jako stavební prvky (prefabrikáty) pro vaše aplikace.
ZClass
ZClass
Implementace dědičnosti
Rychlý návrh aplikací a vyzkoušení koncepcí.
DTML
DTML
Prezentační jazyk s logickými prvky V minulosti používán nejen k prezentaci, ale i k programování. Dnes v podstatě zastaralý.
ZSQL
ZSQL
Rozhraní pro relační databáze
Relační databáze SQL můžete v Zope používat pomocí mini-jazyka ZSQL.
ZEO
ZEO
Clustering a škálování
Zope se škáluje zakoupením většího množství serverů, libovolně zeměpisně rozložených. Technologie ZEO se postará o rozdělení zátěže mezi tyto servery.
ZODB ZODB
Databáze
Objektová databáze pro Zope.
ZCatalog
ZCatalog Indexování databáze
Databáze ZODB používá ZCatalog pro tvorbu indexů a rychlé vyhledávání v datech. ZCatalog umožňuje i fulltextové vyhledávání s operátory AND, OR apod.
Version
Verze
Undo pro ZODB
Populární funkce Undo (krok zpět) na steroidech.
Acquisition
Získávání
Funkce
Zrychluje, zlevňuje a zjednodušuje programování dynamických stránek.
Caching
Caching
Cache pro webové aplikace
Pro úsporu času centrálního mikroprocesoru umí Zope cachovat často používané segmenty dynamických stránek.
Našli jste v článku chybu?
DigiZone.cz: Test Philips 24PFS5231 s Bluetooth repro

Test Philips 24PFS5231 s Bluetooth repro

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Měšec.cz: mBank cenzuruje, zrušila mFórum

mBank cenzuruje, zrušila mFórum

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Podnikatel.cz: Udávání a účtenková loterie, hloupá komedie

Udávání a účtenková loterie, hloupá komedie

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Vitalia.cz: I církev dnes vyrábí potraviny

I církev dnes vyrábí potraviny

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA