zope objetos e métodos internos do zope treinamento presencial

116
ZOPE Objetos e métodos internos do Zope Treinamento presencial

Upload: internet

Post on 18-Apr-2015

117 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Treinamento presencial

ZOPEObjetos e métodos internos do Zope

Page 2: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 3: ZOPE Objetos e métodos internos do Zope Treinamento presencial

ZOPE/PLONE

Capítulo 01 ZMI Arquitetura inicial do ZOPE Área de trabalho Usuários Importando e exportando objetos

Page 4: ZOPE Objetos e métodos internos do Zope Treinamento presencial

ZOPE

Servidor de Aplicações WEBInterpreta ZOPE (ZPT) e DTMLGera saída HTMLEscrito em Python

Page 5: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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.

Page 6: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 7: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Instalação

Page 8: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Arquitetura

Page 9: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Arquitetura

Page 10: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Acessando a ZMI

Dependendo da sua plataforma, você pode executar o Zope com diferentes comandos .

Unix:

$ bin/instance start

Page 11: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 12: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Controlando o Zope com a Interface de Gerenciamento

Page 13: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Controlando o Zope com a Interface de Gerenciamento

Page 14: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 15: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Usuários Emergency User

Manager

Others

Usuários em Zope

Page 16: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Usuários

Criando usuários

Page 17: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Entendendo Usuários em Zope

O Zope é um sistema multiusuário

Page 18: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Administrando e Monitorando o Zope

Control Panel (Painel de Controle)

Page 19: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Importando e Exportando Objetos

Você pode mover objetos de um sistema do Zope para outro usando export e import.

Page 20: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Revisão

Neste capítulo você viu... Introdução Arquitetura Instalação: buildout Acessando a ZMI Conhecendo o Zope

Page 21: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Laboratório

Laboratório 01 Execute o pack da base ‘main’. Selecione qualquer objeto e faça o “export”

deste conteúdo.

Page 22: ZOPE Objetos e métodos internos do Zope Treinamento presencial

ZOPE/PLONE

Capítulo 02 Gerenciando os conteúdos no ZOPE

Adicionar Editar Renomear Desfazer

Page 23: ZOPE Objetos e métodos internos do Zope Treinamento presencial

ZOPE

Técnicas de criação e gerenciamento de conteúdos Criando Objetos Movendo Objetos Renomeando um Objeto Desfazendo Erros

Page 24: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Criando Objetos

Técnicas de criação e gerenciamento de conteúdos

Page 25: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Outras operações Copiar

Renomear

Técnicas de criação e gerenciamento de conteúdos

Page 26: ZOPE Objetos e métodos internos do Zope Treinamento presencial

UNDO

Desfazendo um erro

Page 27: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Revisão

Neste capítulo você viu... Gerenciando os conteúdos no ZOPE

Adicionar Editar Renomear Desfazer

Page 28: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 29: ZOPE Objetos e métodos internos do Zope Treinamento presencial

ZOPE/PLONE

Capítulo 03 Autenticação e autorização Usuários Papéis Permissões

Page 30: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 31: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Entrando e saindo da ZMI A entrada é feita via URL de gerenciamento

Para sair: Log off, ou Fechar o navegador e limpar os cookies

Page 32: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Autenticação e Autorização Autenticar é identificar quem está acessando o

sistema

Autorização é verificar quais acessos o usuário previamente identificado tem

Page 33: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Usuário administrador

Page 34: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 35: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Contas Especiais do Usuário Anonymous User Emergency User Initial Manager

Page 36: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Criando Um usuário de Emergênciausage: adduser <name> <password>./plone adduser JoaoSilva Pa$$w0rdCreated user: JoaoSilva

Page 37: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 38: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Gerenciando Papéis Manager

Anonymous

Owner

Authenticated

Page 39: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Permissões

Permissões

Page 40: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Políticas de segurança Aba Security

Função X Permissão

Padrões de uso de Segurança

Page 41: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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.

Page 42: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 43: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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()">

Page 44: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Ataque Cavalo de Troia

Page 45: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Gerenciamento do Owner

Page 46: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Papéis do Conteúdo Executável DTML Methods e Documents SQL Methods Scripts

Python Perl

Função de Solicitação

Page 47: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Revisão

Neste capítulo você viu... Autenticação e autorização Usuários Papéis Permissões

Page 48: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Laboratório

Laboratório 03 Criar um novo papel, chamado “estagiario” com

a permissão para somente acessar a ZMI - “View management screens”

Page 49: ZOPE Objetos e métodos internos do Zope Treinamento presencial

ZOPE/PLONE

Capítulo 04 Definições de:

ZPT TALES TAL METAL

Page 50: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 51: ZOPE Objetos e métodos internos do Zope Treinamento presencial

ZOPE

ZPT - Zope Page Templates, a camada de apresentação Introdução

Expressões TALES

TAL

METAL

Page 52: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 53: ZOPE Objetos e métodos internos do Zope Treinamento presencial

TAL tal:content tal:replace tal:repeat tal:attributes tal:define tal:condition tal:omit-tag

Zope Page Templates

Page 54: ZOPE Objetos e métodos internos do Zope Treinamento presencial

METAL metal:define-macro; metal:define-slot; metal:use-macro; e metal:fill-slot.

Zope Page Templates

Page 55: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Revisão

Neste capítulo você viu... Definições de:

ZPT TALES TAL METAL

Page 56: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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:

Page 57: ZOPE Objetos e métodos internos do Zope Treinamento presencial

ZOPE/PLONE

Capítulo 05 Formulários utilizando Controller Page

Templates

Page 58: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 59: ZOPE Objetos e métodos internos do Zope Treinamento presencial

CPT

Validação e processamento de formulários Controller Page Template - .cpt Controller Python Script - .cpy Controller Validator Python Script - .vpy

Page 60: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Revisão

Neste capítulo você viu... Formulários utilizando Controller Page

Templates

Page 61: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 62: ZOPE Objetos e métodos internos do Zope Treinamento presencial

ZOPE/PLONE

Capítulo 06 Como se conectar e fazer buscas a um banco de

dados relacional

Page 63: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 64: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Usando Conexões com Banco de Dados Oracle Sybase ODBC Postgre MySQL Interbase Gadfly

Page 65: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Usando Métodos Z-SQL

Page 66: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Usando Métodos Z-SQL

Page 67: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Pesquisas Dinâmicas com SQL Argumentos TAG SQLVar

Name Type Optional

Page 68: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Revisão

Neste capítulo você viu... Como se conectar e fazer buscas a um banco de

dados relacional

Page 69: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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”

Page 70: ZOPE Objetos e métodos internos do Zope Treinamento presencial

ZOPE/PLONE

Capítulo 07 Configurando Catálogos Definindo Índices Utilizando o portal_catalog

Page 71: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 72: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Configurando Catálogos Definindo Índices

TextIndex FieldIndex KeywordIndex PathIndex

Page 73: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Definindo Metadados Zcatalog pode armazenar informações sobre o

objeto Tabular database – Meta Data Table

Page 74: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Busca em Catálogos Formulários

Python

Page 75: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Buscando e Indexando informações Índices de Texto

Vocabulários

Índices de: Campo Palavra Chave Caminho

Page 76: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Revisão

Neste capítulo você viu... Configurando Catálogos Definindo Índices Utilizando o portal_catalog

Page 77: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 78: ZOPE Objetos e métodos internos do Zope Treinamento presencial

ZOPE/PLONE

Capítulo 08 Executando programas Tipagem dinâmica Compilação e interpretação Ferramentas Sintaxe Tipos

Page 79: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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.

Page 80: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Executando Programas$ python arquivo.py

Page 81: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Tipagem Dinâmica Variável inferida pelo interpretador durante

execução Duck Typing

Page 82: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Compilação e interpretação Bytecode

.pyc – bytecode normal

.pyo – bytecode otimizado

Podem ser empacotados junto com o interpretador em um executável

Page 83: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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.

Page 84: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Ferramentas GEDIT

KOMODO

Eclipse

Page 85: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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.

Page 86: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Sintaxe \ Comentários

# (qualquer comentário – é ignorado pelo python)

Exceto os Funcionais: Encoding (caracteres não suportados em inglês) Interpretador

Page 88: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Objetos print objeto.atributo

objeto.metodo(argumentos)

objeto.metodo()

Page 89: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Sintaxes Condicionais

if...elif...else Repetição

for Estático Iteradores

while

Page 90: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Tipos Números e texo Lista, tupla e dicionário Verdadeiro/falso

Mutáveis Imutáveis

Page 91: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Funções Blocos de código que podem receber

parâmetros pré-determinados

Page 92: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 93: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Classes Old style New style

Inicializar = __init__ ()

Herança simples Herança múltipla

Page 94: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Revisão

Neste capítulo você viu... Executando programas Tipagem dinâmica Compilação e interpretação Ferramentas Sintaxe Tipos

Page 95: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Laboratório

Laboratório 08 Criar um python script para listar os arquivos

do contexto, contendo link para download.

Page 96: ZOPE Objetos e métodos internos do Zope Treinamento presencial

ZOPE/PLONE

Capítulo 09 Aumentando a Performance com o

Cacheamento

Page 97: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 98: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 99: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Revisão

Neste capítulo você viu... Aumentando a Performance com o

Cacheamento

Page 100: ZOPE Objetos e métodos internos do Zope Treinamento presencial

ZOPE/PLONE

Capítulo 10 Conhecendo o DTML

Sintaxe Variáveis Atributos Condições

Page 101: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 102: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Sintaxe da Tag DTML<dtml-var standard_html_header> <h1>Hello World!</h1><dtml-var standard_html_footer>

Page 103: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Atributos com DTML <dtml-var wingspan missing="unknown

wingspan">

<dtml-var exclamation upper>

Inserindo variáveis com DTML

Page 104: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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>

Page 105: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Conteúdo dinâmico

Page 106: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Conteúdo dinâmico

Page 107: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Expressões Pythondtml-var expr="getHippo(with a large net)“

CUIDADO:

<dtml-var objectValues>

É diferente de:

<dtml-var expr="objectValues">

Page 108: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 109: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Revisão

Neste capítulo você viu... Conhecendo o DTML

Sintaxe Variáveis Atributos Condições

Page 110: ZOPE Objetos e métodos internos do Zope Treinamento presencial

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

Page 111: ZOPE Objetos e métodos internos do Zope Treinamento presencial

ZOPE/PLONE

Capítulo 11 Conceitos CMF e ZOPE

Page 112: ZOPE Objetos e métodos internos do Zope Treinamento presencial

ZOPE

CMF - Content Management Framework Framework que oferece facilidades para

desenvolver um sistema de gerenciamento de conteúdo personalizado

Page 113: ZOPE Objetos e métodos internos do Zope Treinamento presencial

CMF e o Zope MembershipServices, incluindo personalização CatalogingServices WorkflowServices BasicContentServices SiteDesignServices IntegrationServices

Page 114: ZOPE Objetos e métodos internos do Zope Treinamento presencial

CMF e o Zope DiscussionServices ArchivingServices SyndicationServices RatingServices TestingServices

Page 115: ZOPE Objetos e métodos internos do Zope Treinamento presencial

Revisão

Neste capítulo você viu... Conceitos CMF e o Zope

Page 116: ZOPE Objetos e métodos internos do Zope Treinamento presencial

ZOPE