O que é o Zope?
Muitas tarefas de administração de um servidor Zope podem ser realizadas através de uma interface web. Os objetos que o Zope publica na Web são escritos em linguagem Python, e tipicamente armazenados num banco de dados orientado a objetos, o 2ZODB, que é integrado ao sistema. Objetos básicos, tais como documentos, imagens e templates (modelos de páginas) podem ser criados ou modificados via web. Objetos especializados, tais como wikis, blogs, e galerias de fotos estão disponíveis como componentes adicionais chamados products (Produtos).
Suas características são diversas, mas não caberia citar todas. O zope diferente de muitos sistemas é formado por objetos em um banco de dados em vez de arquivos, este tipo de abordagem permite alavancar as vantagens do paradigma de objetos, como encapsulamento. O Zope associa URLs a objetos utilizando a hierarquia de partes (composição), os métodos são considerados como partes dos objetos.
O Zope fornece dois mecanismos para a criação de templates: Dynamic Template Markup Language (DTML: Linguagem Dinâmica de Marcação de Templates), e Zope Page Templates (ZPT: Templates de Páginas Zope).
DTML é uma linguagem baseada em tags que permite implementar lógica simples em templates, através de laços, condicionais e inserção de variáveis, no entanto, o DTML apresenta alguns problemas comuns às linguagens deste tipo: os templates não podem ser verificados por validadores HTML, e a inclusão indiscriminada de lógica nos templates resulta em código pouco legível e difícil de manter.
ZPT é uma uma tecnologia que ataca estes problemas. Templates ZPT são formadas por XML ou HTML válido, nas quais toda a codificação é feita através de atributos dentro dos tags já existentes nestas linguagens. Tais atributos utilizam um espaço de nomes especial, denominado tal: Template Attribute Language (Linguagem de Atributos para Templates), e assim são compatíveis com as especificações do 3W3C e com as principais ferramentas de edição de HTML. O ZPT proporciona apenas um conjunto limitado de recursos, estimulando os programadores a implementar a lógica em scripts Python à parte, que são apenas invocados (e não incluídos) nos templates, também fornece suporte à internacionalização e localização de aplicativos web, propiciando a substituição de mensagens por versões previamente traduzidas em múltiplas línguas.
1 Servidor é um sistema de computação que fornece serviços a uma rede de computadores. Esses serviços podem ser de diversa natureza, por exemplo, arquivos e correio eletrônico, ou no caso servir páginas de internet.
2 Zope Object Data Base (ou ZODB) é um banco de dados transacional orientado a objetos livre usado pelo servidor de aplicação Zope.
3 O W3C desenvolve tecnologias denominadas padrões da web para a criação e a interpretação dos conteúdos para a Web. Sites desenvolvidos segundo esses padrões podem ser acessados e visualizados por qualquer pessoa ou tecnologia, independente de hardware ou software utilizados, como celulares (em Portugal, telemóvel), PDAs, eletrodomésticos, de maneira rápida e compatível com os novos padrões e tecnologias que possam surgir com a evolução da internet.