objetos internos zope plone
TRANSCRIPT
Treinamento presencial
ZOPEObjetos e métodos internos do Zope
Objetos e métodos internos do Zope
Introdução Este treinamento é destinado aos
desenvolvedores e administradores das soluções desenvolvidas para o Portal de Internet e Intranet do STM .
Carga horária 40h/aula
ZOPE/PLONE
Capítulo 01 ZMI Arquitetura inicial do ZOPE Área de trabalho Usuários Importando e exportando objetos
ZOPE
Servidor de Aplicações WEBInterpreta ZOPE (ZPT) e DTMLGera saída HTMLEscrito em Python
Objetos e métodos internos do Zope
Zope Zope é um ambiente para a construção e
gerenciamento de aplicações Web com foco no seu conteúdo. Ele interpreta os fragmentos de códigos Zope e DTML em seus templates e gera uma saída HTML compreensível para qualquer navegador Web. Ou seja, as páginas de um servidor Zope são geradas dinamicamente, no momento em que o servidor recebe o pedido do browser, mesclando esses dois componentes.
ZOPE
ZMI - a interface de gerenciamento via Web Arquitetura inicial do Zope Acessando a ZMI Iniciando o Zope Entrando no Zope Controlando o Zope com a
Interface de Gerenciamento Usando a Área de Trabalho Entendendo Usuários em
Zope Criando Usuários
Adicionando um novo usuário
Mudando Logins Administrando e
Monitorando o Zope Importando e Exportando
Objetos
Instalação
Arquitetura
Arquitetura
Acessando a ZMI
Dependendo da sua plataforma, você pode executar o Zope com diferentes comandos .
Unix:
$ bin/instance start
Entrando no Zope
Para entrar no Zope você precisa de um navegador. A interface do Zope é escrita inteiramente em HTML, sendo assim o Zope funciona com qualquer navegador.
Acesse:
http://localhost:8080/manage
Controlando o Zope com a Interface de Gerenciamento
Controlando o Zope com a Interface de Gerenciamento
Usando a Área de Trabalho
Frame topo Preferências Logout Links Rápidos
Frame direito Conteúdos(main)
Frame esquerdo Árvore de conteúdos, simplificada
Usuários Emergency User
Manager
Others
Usuários em Zope
Usuários
Criando usuários
Entendendo Usuários em Zope
O Zope é um sistema multiusuário
Administrando e Monitorando o Zope
Control Panel (Painel de Controle)
Importando e Exportando Objetos
Você pode mover objetos de um sistema do Zope para outro usando export e import.
Revisão
Neste capítulo você viu... Introdução Arquitetura Instalação: buildout Acessando a ZMI Conhecendo o Zope
Laboratório
Laboratório 01 Execute o pack da base ‘main’. Selecione qualquer objeto e faça o “export”
deste conteúdo.
ZOPE/PLONE
Capítulo 02 Gerenciando os conteúdos no ZOPE
Adicionar Editar Renomear Desfazer
ZOPE
Técnicas de criação e gerenciamento de conteúdos Criando Objetos Movendo Objetos Renomeando um Objeto Desfazendo Erros
Criando Objetos
Técnicas de criação e gerenciamento de conteúdos
Outras operações Copiar
Renomear
Técnicas de criação e gerenciamento de conteúdos
UNDO
Desfazendo um erro
Revisão
Neste capítulo você viu... Gerenciando os conteúdos no ZOPE
Adicionar Editar Renomear Desfazer
Laboratório
Laboratório 02 Criar uma estrutura hierárquica de pastas simulando uma loja de
informática:
loja-de-informática Desktop
Imacs Linux Windows
Notebooks Macbooks Intel AMD
Memórias DDR2 DDR3
ZOPE/PLONE
Capítulo 03 Autenticação e autorização Usuários Papéis Permissões
Segurança
Segurança através de permissões e perfis Introdução Entrando e saindo da ZMI Autenticação e Autorização Gerenciando Usuários Gerenciando Papéis Gerenciando Permissões Políticas de segurança
Entrando e saindo da ZMI A entrada é feita via URL de gerenciamento
Para sair: Log off, ou Fechar o navegador e limpar os cookies
Autenticação e Autorização Autenticar é identificar quem está acessando o
sistema
Autorização é verificar quais acessos o usuário previamente identificado tem
Usuário administrador
Definindo a localização do Usuário Existem várias User Folders
O usuário está sujeito ao contexto da sua Folder
Exemplo: Severino Silva em intranet/documentos/acl_usersNão loga emintranet/documentos
Contas Especiais do Usuário Anonymous User Emergency User Initial Manager
Criando Um usuário de Emergênciausage: adduser <name> <password>./plone adduser JoaoSilva Pa$$w0rdCreated user: JoaoSilva
Autorização e Gerenciamento de Segurança As políticas de segurança do Zope controla a
autorização
Definem quem pode fazer o que
Gerenciando Papéis Manager
Anonymous
Owner
Authenticated
Permissões
Permissões
Políticas de segurança Aba Security
Função X Permissão
Padrões de uso de Segurança
Regras de Manuseio de Segurança Defina usuários no seu nível mais alto de
controle, mas não no mais alto de todos.
Agrupe objetos que deveriam ser gerenciados pelas mesmas pessoas juntas nos folders.
Mantenha isso simples.
Políticas Global e Local Global x Local
Delegando controle para Gerenciadores Locais
Diferentes níveis de Acesso com Funções
Controle de acesso a Locais com Funções
Executando Controle de Segurança<dtml-if expr="_.SecurityCheckPermission(Add Documents, Images, and Files, this())"> <form action="upload"> ... </form> </dtml-if>
<dtml-var expr="_.SecurityGetUser().getUserName()">
Ataque Cavalo de Troia
Gerenciamento do Owner
Papéis do Conteúdo Executável DTML Methods e Documents SQL Methods Scripts
Python Perl
Função de Solicitação
Revisão
Neste capítulo você viu... Autenticação e autorização Usuários Papéis Permissões
Laboratório
Laboratório 03 Criar um novo papel, chamado “estagiario” com
a permissão para somente acessar a ZMI - “View management screens”
ZOPE/PLONE
Capítulo 04 Definições de:
ZPT TALES TAL METAL
Introdução Zope Page Templates é uma ferramenta de geração HTML/XML.
Este apêndice é uma referência dos padrões Zope Page Templates: Tag Attribute Language (TAL), TAL Expression Sintaxe (TALES) e Macro Expansion TAL (METAL).
Vantagens: Reaproveitamento de código(tags <>) HTML; Real separação entre conteúdo, lógica e apresentação; e Facilidade/agilidade no uso de templates.
Desvantagens: Poderá gerar mais código HTML do que o necessário; Poderá existir lógica no template (não recomendado).
Zope Page Templates
ZOPE
ZPT - Zope Page Templates, a camada de apresentação Introdução
Expressões TALES
TAL
METAL
TALES path: (padrão) python: string:
Definir classes CSS, Javascript e registros KSS; Inserir queries de catalogo dentro do template; Chamadas de scripts Python e ZSQL
Zope Page Templates
TAL tal:content tal:replace tal:repeat tal:attributes tal:define tal:condition tal:omit-tag
Zope Page Templates
METAL metal:define-macro; metal:define-slot; metal:use-macro; e metal:fill-slot.
Zope Page Templates
Revisão
Neste capítulo você viu... Definições de:
ZPT TALES TAL METAL
Laboratório
Laboratório 04 Com base no laboratório 02, criar uma página
contendo: Header: Um título <H1> com o título do contexto Área de conteúdos: Listagem das subpastas, do
primeiro nível, por ordem alfabética Footer:
ZOPE/PLONE
Capítulo 05 Formulários utilizando Controller Page
Templates
ZOPE
Validação e processamento de formulários Os formulários no Zope utilizam as mesmas
funcionalidades do Zope Page Tempates, com uma diferença, o desenvolvedor poderá ter maior facilidade de controle, atribuindo validações e ações aos formulários
CPT
Validação e processamento de formulários Controller Page Template - .cpt Controller Python Script - .cpy Controller Validator Python Script - .vpy
Revisão
Neste capítulo você viu... Formulários utilizando Controller Page
Templates
Laboratório
Laboratório 05 Criar um formulário com os campos:
Nome Telefone E-mail
Validar todos os campos, caso o valor não seja preenchido
ZOPE/PLONE
Capítulo 06 Como se conectar e fazer buscas a um banco de
dados relacional
Integração BD relacional
Integração com bancos de dados relacionais Este capítulo descreve como o Zope se conecta a
banco de dados relacionais externos.
Conexões de Banco de Dados Métodos Z SQL
Usando Conexões com Banco de Dados Oracle Sybase ODBC Postgre MySQL Interbase Gadfly
Usando Métodos Z-SQL
Usando Métodos Z-SQL
Pesquisas Dinâmicas com SQL Argumentos TAG SQLVar
Name Type Optional
Revisão
Neste capítulo você viu... Como se conectar e fazer buscas a um banco de
dados relacional
Laboratório
Laboratório 06 Criar uma tabela “sala_de_noticias” , com os
campos: id, titulo, texto Criar uma nova conexão com o id
“conexao_noticias” Adicionar os dados solicitados para os campos
da tabela “sala_de_noticias”
ZOPE/PLONE
Capítulo 07 Configurando Catálogos Definindo Índices Utilizando o portal_catalog
Mecanismo de busca interno: catalogação e indexação Este capítulo mostra a você como indexar e
buscar objetos com o mecanismo de busca construído no Zope, O [portal_catalog (Catálogo) e introduz conceitos de indexação discutindo diferentes modelos para indexação e busca
Catalogação e indexação
Configurando Catálogos Definindo Índices
TextIndex FieldIndex KeywordIndex PathIndex
Definindo Metadados Zcatalog pode armazenar informações sobre o
objeto Tabular database – Meta Data Table
Busca em Catálogos Formulários
Python
Buscando e Indexando informações Índices de Texto
Vocabulários
Índices de: Campo Palavra Chave Caminho
Revisão
Neste capítulo você viu... Configurando Catálogos Definindo Índices Utilizando o portal_catalog
Laboratório
Laboratório 07 Criar um novo índice com o id “getTexto”, com
referencia ao índice “getText”. Criar um ZPT para listar o getTexto no contexto
de uma notícia
ZOPE/PLONE
Capítulo 08 Executando programas Tipagem dinâmica Compilação e interpretação Ferramentas Sintaxe Tipos
Python
Python básico: a camada lógica Python é uma linguagem de altíssimo nível
orientada a objeto, de tipagem dinâmica e forte, interpretada e interativa.
Executando Programas$ python arquivo.py
Tipagem Dinâmica Variável inferida pelo interpretador durante
execução Duck Typing
Compilação e interpretação Bytecode
.pyc – bytecode normal
.pyo – bytecode otimizado
Podem ser empacotados junto com o interpretador em um executável
Modo Interativo
python (enter)↲
Python 2.6.4 (r264:75706, Nov 3 2009, 13:20:47)_[GCC 4.4.1] on linux2_Type "help", "copyright", "credits" or "license" for more information.
Ferramentas GEDIT
KOMODO
Eclipse
Frameworks Web: Django, TurboGears, Zope e web2py. Interface gráfica: wxPython, PyGTK e PyQt. Processamento cientifico: NumPy e SciPy. Processamento de imagens: PIL. 2D: Matplotlib e SVGFig. 3D: Visual Python, PyOpenGL e Python Ogre. Mapeamento objeto-relacional: SQLAlchemy e
SQLObject.
Sintaxe \ Comentários
# (qualquer comentário – é ignorado pelo python)
Exceto os Funcionais: Encoding (caracteres não suportados em inglês) Interpretador
Blocos :
http://www.python.org/dev/peps/pep-0008/
Objetos print objeto.atributo
objeto.metodo(argumentos)
objeto.metodo()
Sintaxes Condicionais
if...elif...else Repetição
for Estático Iteradores
while
Tipos Números e texo Lista, tupla e dicionário Verdadeiro/falso
Mutáveis Imutáveis
Funções Blocos de código que podem receber
parâmetros pré-determinados
Exceções Quando ocorre uma falha no programa (como
uma divisão por zero, por exemplo) em tempo de execução, uma exceção é gerada. Se a exceção não for tratada, ela será propagada através das chamadas de função até o módulo principal do programa, interrompendo a execução.
try... except... Raise
Classes Old style New style
Inicializar = __init__ ()
Herança simples Herança múltipla
Revisão
Neste capítulo você viu... Executando programas Tipagem dinâmica Compilação e interpretação Ferramentas Sintaxe Tipos
Laboratório
Laboratório 08 Criar um python script para listar os arquivos
do contexto, contendo link para download.
ZOPE/PLONE
Capítulo 09 Aumentando a Performance com o
Cacheamento
ZOPE
Cacheamento de componentes Aumentando a Performance com o
Cacheamento
Uma cache é um lugar temporário para armazenar informações que você freqüentemente acessa. A razão para usar uma cache é a velocidade
Aumentando a performance com o cacheamento Tempo de vida do cache Informação pessoal Adicionando um gerenciador de cache Acelerador de Gerenciado de cache HTTP RAM Cacheando um documento
Revisão
Neste capítulo você viu... Aumentando a Performance com o
Cacheamento
ZOPE/PLONE
Capítulo 10 Conhecendo o DTML
Sintaxe Variáveis Atributos Condições
ZOPE
Conteúdo dinâmico com DTML Linguagem de script baseada em tags do Zope Para que o DHTML é bom? Quando não usar DHTML
Sintaxe da Tag DTML<dtml-var standard_html_header> <h1>Hello World!</h1><dtml-var standard_html_footer>
Atributos com DTML <dtml-var wingspan missing="unknown
wingspan">
<dtml-var exclamation upper>
Inserindo variáveis com DTML
Adquirindo conteúdo dinamicamente O Zope procura as variáveis da DTML no
repositório do objeto corrente se ele não encontra a variável primeiro no objeto corrente.
<dtml-var standard_html_header> <p>Welcome</p><dtml-var standard_html_footer>
Conteúdo dinâmico
Conteúdo dinâmico
Expressões Pythondtml-var expr="getHippo(with a large net)“
CUIDADO:
<dtml-var objectValues>
É diferente de:
<dtml-var expr="objectValues">
Expressões Python VAR Atributos da Tag Var If... Else... Elif ObjectValues IN Interação com lista de arquivos Variáveis especiais da Tag IN
Revisão
Neste capítulo você viu... Conhecendo o DTML
Sintaxe Variáveis Atributos Condições
Laboratório
Laboratório 09 Criar uma pagina utilizando o DTML Document
simulando a pagina de um blog, com: Header Área de conteúdos:
Post: título, descrição e link Footer
ZOPE/PLONE
Capítulo 11 Conceitos CMF e ZOPE
ZOPE
CMF - Content Management Framework Framework que oferece facilidades para
desenvolver um sistema de gerenciamento de conteúdo personalizado
CMF e o Zope MembershipServices, incluindo personalização CatalogingServices WorkflowServices BasicContentServices SiteDesignServices IntegrationServices
CMF e o Zope DiscussionServices ArchivingServices SyndicationServices RatingServices TestingServices
Revisão
Neste capítulo você viu... Conceitos CMF e o Zope
ZOPE