zope.pagetemplate é um módulo que fornece um mecanismo de modelagem elegante que atinge uma clara separação de apresentação e aplicação lógica & nbsp; ao mesmo tempo permitindo aos designers trabalhar com modelos em suas ferramentas de edição visuais (FrontPage, Dreamweaver, GoLive, etc.).
Documentação detalhada
ZPT (Zope Page Template-) Arquitetura
Há uma série de componentes principais que compõem a arquitetura página-modelo:
- O compilador TAL e intérprete. Este é responsável por compilar os arquivos de origem e para a execução de modelos compilados. Veja o pacote zope.tal para mais informações.
- Um mecanismo de expressão é responsável pela compilação e expressões para a criação de contextos de execução expressão. É comum que os aplicativos para substituir os motores de expressão para fornecer suporte expressão personalizada ou para mudar a maneira como as expressões são implementadas. O pacote zope.app.pagetemplate usa isso para implementar a avaliação confiáveis e não confiáveis; um motor diferente é usado para cada, com diferentes implementações do mesmo tipo de expressões.
- Contextos Expression suportar a execução de expressões e fornecer APIs para a criação de escopos de variáveis e definir variáveis. Os contextos de expressão são passados para o intérprete TAL no tempo de execução.
- A implementação expressão mais comumente utilizada é a encontrada em zope.tales.
- Os modelos de página juntar tudo. Eles montar um mecanismo de expressão com o intérprete TAL e orquestrar a gestão de fonte de dados e templates compilados. Veja zope.pagetemplate.interfaces.
Modelos de Páginas
Introdução
Modelos de Páginas fornecer um mecanismo de modelos elegantes que atinge uma clara separação de apresentação e aplicação lógica, permitindo simultaneamente para designers para trabalhar com modelos em suas ferramentas de edição visuais (FrontPage, Dreamweaver, GoLive, etc.).
Este documento centra-se na utilização de Modelos de Páginas fora de um contexto Zope, ela não explica como escrever modelos de página, pois há vários recursos na web que fazê-lo.
Uso simples
Usando Modelos de Páginas fora de Zope3 é muito fácil e direto. Um exemplo rápido:
>>> From zope.pagetemplate.pagetemplatefile PageTemplateFile importação
>>> My_pt = PageTemplateFile ('hello_world.pt')
>>> My_pt ()
u '
PageTemplates Subclassing
Vamos dizer que queremos alterar modelos de página de tal forma que os argumentos de palavras-chave aparecem como itens de nível superior no namespace. Podemos subclasse PageTemplate e alterar o comportamento padrão do pt_getContext () para adicioná-los em:
de zope.pagetemplate.pagetemplate PageTemplate importação
mypt classe (PageTemplate):
& Nbsp; def pt_getContext (self, args = (), options = {}, ** kw):
& Nbsp; rval = PageTemplate.pt_getContext (self, args = args)
& Nbsp; options.update (rval)
& nbsp; opções de retorno
classe foo:
& nbsp; def getContents (self): return 'oi'
Então agora podemos vincular objetos de uma forma mais arbitrária, como o seguinte:
template = "" "
Good Stuff Aqui
"" "
pt = mypt ()
pt.write (molde)
pt (das_object = foo ())
Veja interfaces.py
O que é novo nesta versão:.
- Substituído preterido uso zope.interface.classProvides com zope equivalente .interface.provider decorador.
- Substituído preterido uso zope.interface.implements com decorador zope.interface.implementer equivalente.
- retirou o suporte para Python 2.4 e 2.5.
- PageTemplate.pt_render () tem um novo argumento, check_macro_expansion, padronizando para True.
- PageTemplateTracebackSupplement passa check_macro_expansion = False, para evitar LP # 732972.
O que é novo na versão 3.6.3:
- afirmações de teste fixo para ser compatível com zope.tal 3.6.
O que é novo na versão 3.6.1:.
- Corrigido problema com a falta de valor padrão para strictinsert
O que é novo na versão 3.6.0:
- Substituído classe fluxo StringIO com um mais rápido baseado em lista- implementação.
- Resumo do programa do motor e as interfaces do modelo e permitir a substituição de execução através de um utilitário de registro.
- copyright antigo removido a partir de arquivos de teste (LP: # 607228)
Requisitos :
- Python
Comentários não encontrado