zope.pagetemplate este un modul care oferă un mecanism templating elegant, care realizează o separare curată de prezentare si aplicare logica & nbsp; în același timp permițând proiectanților să lucreze cu modele din instrumentele lor de editare vizuale (FrontPage, Dreamweaver, GoLive, etc.).
documentație detaliată
ZPT (Zope Page-Template) Arhitectura
Există o serie de componente majore care alcătuiesc arhitectura pagini template:
- Compilatorul TAL și interpret. Aceasta este responsabilă pentru întocmirea fișierele sursă și pentru executarea șabloane compilate. Vezi pachetul zope.tal pentru mai multe informații.
- Un motor expresie este responsabilă pentru întocmirea și expresii pentru a crea contexte de execuție exprimare. Aceasta este comun pentru cererile pentru a trece peste motoarele de expresie pentru a oferi sprijin exprimare personalizate sau pentru a schimba modul în care sunt puse în aplicare expresii. Pachetul zope.app.pagetemplate foloseste acest lucru pentru a pune în aplicare evaluare de încredere și care nu prezintă încredere; un alt motor este utilizat pentru fiecare, cu diferite implementări ale aceluiași tip de expresii.
- Contexte de exprimare a sprijini executarea de expresii și să ofere API-uri pentru crearea scopuri variabile și stabilirea variabilelor. Contextele de expresie sunt transmise interpret TAL la timpul de executie.
- Implementarea expresie mai frecvent folosită este cea găsită în zope.tales.
- Șabloane Page lega totul împreună. Ei asambla un motor expresie cu interpretul TAL și orchestra de gestionare a sursei și a datelor compilate șablon. Vezi zope.pagetemplate.interfaces.
Șabloane de pagină
Introducere
Șabloane de pagină oferă un mecanism templating elegant, care realizează o separare curată de prezentare si aplicare logica permitand in acelasi timp pentru designeri pentru a lucra cu șabloane în instrumentele lor de editare vizuale (FrontPage, Dreamweaver, GoLive, etc.).
Acest document se concentrează pe utilizarea de șabloane în afara unui context Zope pagini, nu explică cum să scrie șabloane de pagină, deoarece există mai multe resurse de pe web care face acest lucru.
Utilizare simplă
Utilizarea șabloanelor Pagina afara Zope3 este foarte ușor și drept înainte. Un exemplu rapid:
>>> Din PageTemplateFile import zope.pagetemplate.pagetemplatefile
>>> My_pt = PageTemplateFile ('hello_world.pt ")
>>> My_pt ()
u '
PageTemplates subclasarea
Să spun vrem să modifice șabloane de pagină, astfel încât argumentele cuvinte cheie apar ca elemente de nivel de top din spațiul de nume. Putem subclasa PageTemplate și modifica comportamentul implicit de pt_getContext () pentru a le adăuga în:
din PageTemplate import zope.pagetemplate.pagetemplate
mypt clasa (PageTemplate):
& Nbsp; def pt_getContext (auto, args = (), opțiunile = {}, ** kw):
& Nbsp; rval = PageTemplate.pt_getContext (auto, args = args)
& Nbsp; options.update (rval)
& nbsp; opțiunile de returnare
Clasa de foo:
& nbsp; def getContents (auto): întoarcerea "hi"
Deci, acum putem lega obiecte într-un mod mai arbitrar, cum ar fi următoarele:
template = "" "
Good Stuff Aici
"" "
pt = mypt ()
pt.write (template)
pt (das_object = foo ())
Vezi interfaces.py
Ce este nou în această versiune:.
- Înlocuit utilizare zope.interface.classProvides depreciate cu Zope echivalent decorator .interface.provider.
- Înlocuit utilizare zope.interface.implements depreciate cu decorator zope.interface.implementer echivalent.
- renunțat la suportul pentru Python 2.4 și 2.5.
- PageTemplate.pt_render () are un nou argument, check_macro_expansion, obligațiile la Adevărat.
- PageTemplateTracebackSupplement trece check_macro_expansion = False, pentru a evita CG # 732972.
Ce este nou în versiunea 3.6.3:
- afirmații de testare fixă pentru a fi compatibile cu zope.tal 3.6.
Ce este nou în versiunea 3.6.1:.
- Problema fixe cu lipsă valoare implicită pentru strictinsert
Ce este nou în versiunea 3.6.0 :
- Înlocuit clasa curent StringIO cu o mai rapidă pe bază de listă implementare.
- Rezumat afară de motor si de programe de interfețele șablon și permite înlocuirea implementare printr-o cerere de înregistrare de utilitate.
- copyright vechi Eliminat din fișierele de test (LP: # 607228)
Cerințe :
- Python
Comentariile nu a fost găsit