zope.pagetemplate est un module qui fournit un mécanisme de template élégant qui permet d'obtenir une séparation nette de la présentation et de l'application logique & nbsp; tout en permettant aux concepteurs de travailler avec des modèles dans leurs outils d'édition visuelle (FrontPage, Dreamweaver, GoLive, etc.).
Documentation détaillée
ZPT (Zope page-modèle) de l'Architecture
Il ya un certain nombre de composantes principales qui composent l'architecture la page-modèle:
- Le compilateur TAL et interprète. Il est chargé de compiler les fichiers sources et pour exécuter les templates compilés. Voyez le paquet zope.tal pour plus d'informations.
- Un moteur d'expression est responsable de la compilation des expressions et pour créer des contextes d'exécution d'expression. Il est courant pour les applications de l'emporter sur les moteurs d'expression à fournir un soutien de l'expression de la coutume ou de changer la façon dont les expressions sont mises en œuvre. Le paquet de zope.app.pagetemplate utilise pour mettre en œuvre l'évaluation fiable et non fiable; un système différent est utilisé pour chacune, avec différentes implémentations du même type d'expressions.
- Contextes d'expression soutiennent l'exécution des expressions et fournissent des API pour la mise en place des domaines de variables et la définition des variables. Les contextes d'expression sont passés à l'interprète TAL au moment de l'exécution.
- La mise en œuvre de l'expression la plus couramment utilisée est celle trouvée dans zope.tales.
- Les modèles de page tout lier. Ils assemblent un moteur d'expression avec l'interprète TAL et orchestrent la gestion de la source et des données de modèles compilés. Voir zope.pagetemplate.interfaces.
Les modèles de page
Introduction
Les modèles de page fournissent un mécanisme de template élégant qui permet d'obtenir une séparation nette de la logique de présentation et de l'application tout en permettant aux concepteurs de travailler avec des modèles dans leurs outils d'édition visuelle (FrontPage, Dreamweaver, GoLive, etc.).
Ce document met l'accent sur l'utilisation de modèles de page en dehors d'un contexte de Zope, il ne précise pas comment écrire des modèles de page comme il ya plusieurs ressources sur le Web qui le faire.
Utilisation simple
Utilisation de modèles à l'extérieur de la page Zope3 est très facile et simple. Un exemple rapide:
>>> From PageTemplateFile d'importation zope.pagetemplate.pagetemplatefile
>>> My_pt PageTemplateFile = ('hello_world.pt')
>>> My_pt ()
u '
PageTemplates sous-classement
Disons que nous voulons modifier les modèles de page tels que les arguments de mots clés apparaissent comme des meilleurs éléments de niveau dans l'espace de noms. Nous ne pouvons sous-classe PageTemplate et de modifier le comportement par défaut de pt_getContext () pour les ajouter dans:
de PageTemplate d'importation zope.pagetemplate.pagetemplate
myPt de classe (PageTemplate):
& Nbsp; def pt_getContext (self, args = (), options = {}, ** kw):
& Nbsp; rval = PageTemplate.pt_getContext (auto, args = args)
& Nbsp; options.update (rval)
& nbsp; options de retour
classe foo:
& nbsp; def getContents (auto): return 'salut'
Alors maintenant, nous pouvons lier des objets d'une façon plus arbitraire, comme ce qui suit:
template = "" "
ici
"" "
pt = myPt ()
pt.write (modèle)
pt (das_object = foo ())
Voir interfaces.py
Ce qui est nouveau dans cette version:.
- Remplacé obsolète l'utilisation de zope.interface.classProvides avec Zope équivalent .interface.provider décorateur.
- Remplacé obsolète l'utilisation de zope.interface.implements avec zope.interface.implementer décorateur équivalent.
- supprimé le support pour Python 2.4 et 2.5.
- PageTemplate.pt_render () a un nouvel argument, check_macro_expansion, défaillant à True.
- PageTemplateTracebackSupplement passe check_macro_expansion = False, pour éviter LP # 732972.
Quoi de neuf dans la version 3.6.3:
- affirmations d'essai fixe pour être compatible avec zope.tal 3.6.
Quoi de neuf dans la version 3.6.1:.
- Correction d'un problème avec une valeur manquante par défaut pour strictinsert
Ce qui est nouveau dans la version 3.6.0 :
- basé sur une liste Remplacé StringIO classe de flux avec un plus rapide la mise en œuvre.
- Résumé sur les interfaces de modèles de moteurs et de programmes et permettre le remplacement de la mise en œuvre par l'intermédiaire d'un enregistrement de l'utilitaire.
- Retiré auteur ancienne à partir de fichiers de test (LP: # 607228)
Exigences :
- Python
Commentaires non trouvées