SlideShare uma empresa Scribd logo
Sematec 2014
Palestrantes:
Álvaro Oliveira e Guilherme Esmeraldo
Roteiro
 Breve Histórico
 Características
 Por que Python?
 Quem Usa?
 Como Usar?
Breve Histórico
 Linguagem Criada em 1990, Por Guido van Rossun
 Foco em usuários como físicos e engenheiros
 Python foi concebida através de uma linguagem chamada
ABC
Características
 Linguagem Interpretada
 Tripagem dinâmica
 Controle de Bloco é feita por indentação
 Oferece tipos de alto nível
 E orientado a objetos
 Fácil aprendizado
 Open Source
 Biblioteca padrão muito rica
Características
 Multiplataforma:
Linux/Unix, Windows, Symbian, MacOSX, etc
 Multiparadigma:
Procedural, Orientado a Objetos e Funcional
Por que Python?
 Os conceitos fundamentais da linguagem são simples de entender;
 A sintaxe do Python é clara e fácil de aprender;
 Os tipos pré-definidos em Python são poderosos e simples de usar;
 O interpretador Python permite aprender e testar rapidamente
trechos de código
 Python é expressivo, com abstrações de alto nível => código curto e
rápido desenvolvimento
Por que Python?
 Prototipação rápida
 Desenvolvimento Web
 Acesso a banco de dados
 Código “enxuto”!
 Computação numérica e científica
 Jogos
 3D
Quem Usa?
 Google (aplicações Web).
 Yahoo (aplicações Web).
 Microsoft (IronPython: Python para .NET).
 Nokia (disponível para as linhas recentes de celulares e
PDAs).
 Disney (animações 3D).
 Funceme(aplicações com Radares)
 Mais casos:
http://www.python.org/about/success/
Como Usar?
 Nas linguagens Interpretadas é executada utilizando o
interpretador lê o código fonte e interpreta diretamente,
durante a sua execução.
 Tanto pode utilizar no Shell ou Uma IDE
Instalando
 Instalando
 Entre no link http://www.python.org/getit/ e baixe
para sua plataforma.
 No windows: clique duas vezes, next, next, … e finish.
 No linux: qualquer distribuíção já vem com Python!
IDE Disponíveis
 Idle :
 Já vem com o Python. É bem simples de ser usado também.
 Komodo-Edit:
 E uma excelente opção de editor, bastante rico em recursos tais como
autocomplete, multi-language e outros.
 Eclipse:
 Ideal para desenvolvimento Java. Mas existem plugins para se desenvolver
em Python.
 Pycham
 E proprietário, Possui um conjunto de ferramentas úteis para um
desenvolvimento produtivo.
Utilizando o Shell
 Para chamar o interpretador Python apenas digite “python” no
prompt do shell:
 Quando o shell é iniciado aparecerão três ‘>’ (“>>>”) indicando que
ele está ativo e pode receber comandos
$ python
Python 2.5.1 (r251:54863, Sep 4 2007, 19:00:19)
[GCC 4.1.2] on linux2
Type "help", "copyright", "credits" or "license" for
more information.
>>>
Meu Primeiro Programa
Saida
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
Print “Hello, World!”
JAVA
Python
Saída
 Salvar com a extensão .py
Exemplo: alomundo.py
 Entre na pasta que está o arquivo
cd nomedapasta
 Em seguida, rodar o comando:
python alomundo.py
Definições de Variáveis
 Sintaxe
nomeDaVariavel = valorAtribuido
 Descobrir o tipo atual de uma variável, utiliza a função type()
 type(nome)
nome = “python” #String
num = 1 # valor inteiro
preco = 10.99 # valor ponto flutuante
t = True # valor booleano
Entrada
 Sintaxe:
nomeDaVariavel = input(’Texto para Saída’)
 Para capturar informações do usuário podemos usar duas
funções:
input(“mensagem”)
Espera que o usuários digite comandos
ou valores
raw_input(“mensagem”)
Espera strings
Delimitações
 Uso de “;” no fim de comandos não é obrigatório
 Blocos delimitados por identação
def soma(a):
. . . .return a+1
print soma(10)
Não é um erro
sintático, mas é
desnecessário
e portanto
deselegante
Comentários
 Comentários de são feitos usando ‘#’
 Para comentários de bloco pode-se usar string multilinhas com
‘”””’
“”” def inc(a):
. . . .return a+1”””
#print inc(10)
Exercício:
1. Faça um programa que leia da entrada padrão um
número, em seguida imprima ele na tela.
2. Agora faça um programa que leia dois números e em
seguida imprime o resultado da multiplicação deles
Controle de Fluxo
 Nada de parênteses! Nada de chaves!
 IF
if expressão1:
Comando1
...
elif expressão2:
Comando3
...
else:
...
Usando If
#! /usr/bin/python
# -*- coding: iso-8859-1 -*-
x = input("Entre com um numero inteiro: ")
if x < 0:
print 'Numero negativo'
elif x == 0:
print 'Zero'
elif x == 1:
print 'Um'
else:
print 'Numero positivo'
Controle de Fluxo
 O loop While, tem como função repetir um bloco de
comando ate que aconteça uma parada.
while expressão2:
Comando3
...
Controle de Fluxo
 O for em Python podemos “varrer” uma sequencia que se difere
de outra linguagens por ser utilizado como iterador de progressão
aritmética.
for variavel in rage(ni,nf-1):
Cria uma lista a partir do
inteiro ni até o inteiro nf-1
for variavel in lista
Exemplo for
for contador in range(1,6):
print contador
1
2
3
4
5
Estruturas de Dados
 Lista[ ]
 Lista é uma seqüência de valores indexadas por um inteiro. Uma lista pode
conter qualquer tipo de valor, incluindo valores de tipos mistos.
numero = [ 1, 2,3]
nomes = ['maria','paulo','jose']
mistos=[1,’maria’,2]
Estrutura de Dados: Listas [ ]
Os elementos da lista podem ser acessados por meio de índices que
vão de 0 até o comprimento da lista-1
lista = [ ‘maria’,’paulo’,’jose’,’carlos’]
0 1 2 3
>>> lista [0]
maria
Estrutura de Dados: Listas [ ]
Fatias, ou slices, de uma lista podem ser geradas facilmente
com o “:”
Lista = [inicio:final]
>>> n = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 ]
>>> n[2:4]
[3, 4]
Estrutura de Dados: Listas [ ]
Métodos Uteis
1
2
4
3
0
1
2
3
lista.extend(lista2)lista.append(8)
lista.pop()
lista.remove(2)
Exercício:
1.Faça um programa que leia da entrada padrão um
número, em seguida adicione e imprima a lista .
2.Seguindo o exemplo anterior:
Crie uma nova lista e adicione na lista anterior;
Remova um elemento na Posição 4;
Imprima toda a lista;
Python: Orientado a
Objetos
Python: Orientado a Objeto
“Orientação a objetos, OO, é um termo que descreve uma série de
técnicas para estruturar soluções para problemas computacionais.
é um paradigma de programação no qual um programa e
estruturado em objetos, e que enfatiza os aspectos abstração,
encapsulamento, polimorfismo e herança.”
E tudo é um Objeto
Tudo em Python é no fim um objeto!
list3.append(‘a’)
Novos objetos (classes) podem ser facilmente adicionados
aos tipos de dados já existentes em Python!
De fato, programar em Python é normalmente feito de
forma orientado a objetos!
Definição de uma Classe
A forma mais simples de definição de uma classe pode ser
descrita dessa maneira:
>>> class NomeDaClasse:
<comando-1>
.
.
.
<comando-N>
Definição de um Metodo
Utiliza o comando def, para definir um método de uma
classe:
>>> class HelloMundo:
def alomundo(self):
print “Ola Mundo“
Instanciando uma Classe
Quando criamos a classe HelloMundo, criamos um novo
tipo de dado. Os membros deste novo tipo são chamados
instâncias deste tipo ou objetos. Criar uma nova instância
é instanciar. Para instanciar o objeto HelloMundo:
...
alo=HelloMundo()
alo.alomundo()
Definição de uma Classe
Exemplo:
class HelloMundo: #Definindo a Classe
def alomundo(self): #Definindo o Método
print “Ola Mundo“
alo=HelloMundo() #criando uma instância da classe
alo.alomundo()
Definição da Classe
Privados
Atributos e métodos que só podem ser acessados
dentro da classe, usa-se “__” no início do nome
Protected
Apenas convenção e usa-se apenas um “_” no
nome de métodos ou atributos, ex. _telefone
class musica:
_compositor=“Luiz Gonzaga”
__ritmo=“Baiao”
m=musica()
m._compositor
Definição da Classe
class Contador(object):
def __init__(this):
this.contagem = {}
def incluir(this, item):
qtd = this.contagem.get(item, 0) + 1
this.contagem[item] = qtd
def contar(this, item):
return this.contagem[item]
Definição da Classe
class Contador(object):
def __init__(this):
this.contagem = {}
def incluir(this, item):
qtd = this.contagem.get(item, 0) + 1
this.contagem[item] = qtd
def contar(this, item):
return this.contagem[item]
Em Python
Não Usamos
this
Definição da Classe
class Contador(object):
def __init__(self):
self.contagem = {}
def incluir(self, item):
qtd = self.contagem.get(item, 0) + 1
self.contagem[item] = qtd
def contar(self, item):
return self.contagem[item]
Usamos
self
Argumento do Método self
•Em todos métodos associados à instância definido dentro
de uma classe devem ter o argumento self definido como
primeiro argumento.
•Maior flexibilidade na chamada de métodos.
•É a referência para a própria instância da classe
•Mesmo que você tem um método que não recebe nenhum
argumento, ainda assim você deve definir que este tenha o
argumento self.
Construtor __init__( )
é um método especial que é invocado automaticamente
quando um novo objeto é criado e que inicializa os
atributos deste objetos.
E opcional!
class Hello:
def _init_ (self,nome):
self.nome = nome
Definição da Classe
Herança
Uma classe pode herdar a definição de outra classe
Python não tem a palavra ‘extends’ como em Java
A Herança multipla é suportada
SuperClasse
SubClasse SubClasse
Exemplo Herança
Para definir uma subclasse, coloque o nome da superclasse entre
parênteses depois do nome da subclasse na primeira linha da
definição.
class Veiculo:
def andar(self):
print "Andei"
class Carro(Veiculo):
def andar(self):
_numRodas=4
gol = Carro()
gol.andar()
Sobrecarga
Redefinição de métodos já existente, com o
mesmo nome.
Quando um método da classe pai é redefinido
na classe filha
 Diz-se que o método foi sobrecarregado
(overloaded)
Redefinindo Métodos
class Veiculo:
def andar(self):
print "Andei"
class Carro(Veiculo):
def andar(self):
print ' Andei de Carro'
gol = Carro()
gol.andar()
Redefinindo Métodos
class Veiculo:
def andar(self):
print "Andei"
class Carro(Veiculo):
def andar(self):
print ' Andei de Carro'
gol = Carro()
gol.andar()
Redefinindo Métodos
class Veiculo:
def andar(self):
print "Andei"
class Carro(Veiculo):
def andar(self):
print ' Andei de Carro'
gol = Carro()
gol.andar()
Andei de
Carro
Redefinindo Métodos
class Veiculo:
def andar(self):
print "Andei"
class Carro(Veiculo):
def andar(self):
Veiculo.andar(self)
gol = Carro()
gol.andar()
Você pode chamar
o método da
superclasse
Redefinindo Métodos
Você pode redefinir métodos declarados na superclasse
O mesmo vale para o método __init__ .
No método __init__ das subclasses:
parentClass.__init__(self,x,y)
onde parentClass é o nome da classe pai.
Redefinindo Métodos
class Veiculo:
def __init__(self,numPassageiros):
self.numPassageiros = numPassageiros
def andar(self):
print "Andei"
class Carro(Veiculo):
_numRodas= None
def __init__(self, _numRodas,numPassageiros):
Veiculo. __init__(self,numPassageiros)
self._numRodas= _numRodas
def qtdPassageiros(self):
print self.numPassageiros
gol = Carro(4,6)
gol.qtdPassageiros()
Construtor da
classe filha tem
que chamar o
da
classe pai
Herança
Polimorfismo
Polimorfismo literalmente significa várias formas.
Em Python, um método é polimórfico se ele tem diferentes
implementações numa família de classes
Ex:
O operador ‘+’ é polimórfico !
se refere a diferentes operações quando usado, por exemplo, em
inteiros e strings
Exemplo Polimorfismo
class Mamifero:
def som(self):
print 'emitir um som'
class Homem(Mamifero):
def som(self):
print ' Oi'
class Cachorro(Mamifero):
def som(self):
print ' Wuff ! Wuff'
class Gato(Mamifero):
def som(self):
print ' Meaww'
mamifero = Mamifero()
mamifero.som()
animais = [ Homem(),Cachorro(),Gato()]
for animal in animais:
animal.som()
Exercício
Crie uma Classe Chamada Conta Corrente,
declarando o construtor com atributo numero e o
método creditar() e debitar()
Crie uma Classe Poupança tendo como atributo taxaDeJuros e
com o metodo renderJuros(), que herda de Conta Corrente e
Exercício
Exercício
Introdução a HTML
Programando para web com python - Introdução a Python
O que é HTML?
•HTML é a sigla para Hyper Text Markup Language.
•HTML não é uma linguagem de programação.
•HTML é uma linguagem de marcação.
•As marcações são feitas através de <tags>.
Tags
•Deve-se sempre abrir e fechar as tags.
•São os textos que ficam entre < > ou < />.
•Geralmente são sempre pares,<p> e </p>.
•Finalidade é ler o documento Html e exibir o
conteúdo da página.
•Não exibem as tags mas usam as tags para
interpretar o conteúdo das mesmas.
Browsers e o HTML
Exemplos de Browsers
•Apenas de um editor de texto!
•Então abra o Notepad ou Kate e mão a obra!
Do que precisamos para começar?
Como criar um arquivo HTML
•Abrir o editor de textos.
•Criar um novo arquivo em branco.
•Salvar o arquivo com a extensão .html
•Iniciar a edição do arquivo.
Arquivo básico HTML
<html>
<head>
<title>Minha página de Internet</title>
</head>
<body>
...Conteúdo da página...
</body>
</html>
•O texto entre <html> e </html> descreve o conteúdo
da página.
•O texto entre <head> e </head> é o cabeçalho da
página, não é exibido no browser.
•O texto entre <body> e </body> é o conteúdo visível
da página no browser.
•O texto entre <title> e </title> é o título da pagina
Cabeçalhos HTML
•Os cabeçalhos são definidos com as tags <h1> até
<h6>.
•Exemplo:
•<h1>Isto é um cabeçalho</h1>
•<h2>Isto é um cabeçalho</h2>
•<h3>Isto é um cabeçalho</h3>
Parágrafos HTML
•Os parágrafos HTML são definidos com a tag <p>.
• Caso tenha necessidade de quebrar alguma linha,
utilize a tag <br> para fazer a quebra
•Exemplo:
•<p>Isto é um parágrafo.</p>
•<p>Isto é um outro parágrafo. <br>
• Isto ficará na linha de baixo
•</p>
Replique a seguinte pagina da web:
Programando para web com python - Introdução a Python
Estilizando textos:
Para colocar efeito em alguma frase ou palavra
podemos utilizar as seguintes tag’s no documento:
<b>, <i>, <u> e <s>
Exemplo:
<b> isto é uma frase em NEGRITO </b>
<i> isto é uma frase em ITALICO</i>
<u> isto é uma frase SUBLINHADA</u>
<s> isto é uma frase TACHADA</s>
Programando para web com python - Introdução a Python
Atributos HTML
Elementos HTML podem ter atributos.
Atributos fornecem informação adicional sobre um
elemento.
Atributos são sempre especificados na tag inicial.
Atributos vem em pares como name="value".
Valor de atributos devem sempre estar entre aspas
duplas “ ”.
Exemplos de atributos:
Bgcolor: utilizado para definir a cor de fundo da
página web
Background: utilizado para definir uma imagem de
fundo da página web.
Text: utilizado para definir a cor dos textos da página
web
align: utilizado para alinhar o texto.
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
Tag <font>
Vimos que o atributo “text” modifica a cor de todo o
conteudo do body. Para modificar apenas a cor de uma
frase, ou uma palavras colocamos a frase dentro da tag
<font> com o atributo color. Caso deseje mudra o
tamanho da fonte, utilize o atributo size.
Programando para web com python - Introdução a Python
Criando Listas em HTML
Em HTML podemos criar basicamente três tipos de
listas: listas de definição, listas não numeradas e
listas numeradas.
Lista não numeradas:
As listas não numeradas funcionam semelhantes aos
marcadores existentes em aplicativos como editores
de texto. Para criarmos listas não numeradas
utilizamos as tags <UL> para iniciarmos a lista e <LI>
para inserirmos itens na lista.
Programando para web com python - Introdução a Python
Lista numeradas:
As listas numeradas são as mais comuns, a cada item
inserido a numeração da lista cresce.
Pode se utilizar números romanos( I,II,III), números
comuns (1,2,3) ou até letras (a,b,c).
Para criarmos listas numeradas utilizamos as tags OL
para iniciarmos a lista e LI para inserirmos itens na
lista.
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
Python Para
Web:
Cherrypy
Características
Uma simples e poderosa biblioteca do Python
Um framework Python orientada a objetos web.
Pacote auto-contido, só necessita do Python
Não intrusivo
Já vem com Servidor web
Separa o código do layout do HTML
É Gratis
Por que Cherrypy
Tem uma interface limpa;
 É muito pythônico; ou seja, ele segue as convenções do
Python muito bem (código é escassa e não poluente);
Maturidade, tem muitas versões estáveis finais;
Tem uma comunidade dedicada que desenvolve
aplicativos implementados CherryPy;
Perfil do Desenvolvedor
Algum conhecimento da linguagem de
programação Python.
Alguma experiência com programação orientada a
objetos básica.
Alguns conhecimentos de HTML, que é necessária
a construção de páginas web.
Instalação Linux
Baixe a versão mais recente CherryPy do repositório .
Descompacte / untar os arquivos
Vá para o diretório criado pela extração do arquivo.
Tipo "python setup.py install" para instalar o módulo
CherryPy
Instalação Windows
Para instalar o CherryPy basta fazer um download da
biblioteca:
https://pypi.python.org/pypi/CherryPy
Selecione o arquivo que termina em "exe“ e next
Algumas Definições: Servidor Web
É uma interface que lida com o protocolo HTTP
Seu objetivo é transformar pedidos HTTP em entidades
que são passadas para o servidor de aplicação e então
transformar a informação retornada pelo servidor de
aplicação em uma resposta HTTP.
Algumas Definições
Aplicação:
É um pedaço de software que pega uma unidade de informação
e aplica nela a regra do negócio e retorna uma unidade
processada de informação.
Servidor de Aplicação:
É um componente que hospeda uma ou mais aplicações.
Servidor de Aplicação Web:
É simplesmente a junção de um servidor web com
um servidor de aplicação em um componente.
Algumas Definições
Objetos de Publicação
Qualquer objeto agregado ao objeto root é dito objeto publicado, isto
significa que o objeto é acessível via rotina interna de mapeamento do
objeto URL.
Entretanto, não significa que o objeto é diretamente acessível via
Web, para que isto ocorra o objeto deve ser exposto
Expondo Objetos
•A exposição de objetos em cherrypy são permitidos pelo atributo
exposed, que pode ser diretamente setados para objetos que são
chamados
•Existe duas formas:
class Root:
def index(self):
...
index.exposed = True
@cherrypy.expose
def index(self):
Minha Primeira Aplicação
# -*- coding: iso-8859-1 -*- # Alfabeto Latino
import cherrypy # carregando biblioteca
class HelloWorld:
def index(self):
return "Alô Mundo"
index.exposed = True # permite definir quais métodos serão expostos na Web
cherrypy.quickstart(HelloWorld(),’/’) #publica instância da classe e inicia servidor
URI-> http://localhost:8080
Minha Primeira Aplicação
# -*- coding: iso-8859-1 -*- # Alfabeto Latino
import cherrypy # carregando biblioteca
class HelloWorld:
def index(self):
return "Alô Mundo"
index.exposed = True # permite definir quais métodos serão expostos na Web
cherrypy.quickstart(HelloWorld(),’/ ’) #publica instância da classe e inicia servidor
URI-> http://localhost:8080
Neste caso particular o site
raiz é mapeado pelo método
index()
Arquivo de configuração do CherryPy
O CherryPy usa um simples arquivo de configuração para
customizar seu comportamento.
•Para executar este arquivo de configuração para o site use
cherrypy.config.update(arquivo_ou_dicionário)
#global.cfg
[global]
server.socket_port = 8000
server.thread_pool = 10 # quantas thread o servidor pode iniciar
tools.sessions.on = True # habilita sessão, usada sites complexos
tools.staticdir.root = "/home/site" # diretório onde estão aplic.
estáticas
[/static]
tools.staticdir.on = True
tools.staticdir.dir = "static"
Encontrando o objeto correto
Ao receber uma URI, o CherryPy reparte ela em componentes de
caminho(path) e procura um objeto no site que é a melhor resposta
para esta URI particular.
Para cada componente de caminho ele tenta encontrar um objeto de
mesmo nome, começando pela raiz(root) e vai descendo por cada
componente até encontrá-lo.
Recebendo dados de Formulários HTML
Qualquer método pode receber dados adicionais do formulário
HTML usando argumentos (keyword arguments).
<form action=“nomeMetodo " method="post">
campos do formulário
aqui dentro das tags
</form> GET é o método HTML padrão.
Para submeter um formulário
HTML usando POST é preciso
especificar no atributo “method”
o valor “POST”.
Duvidas?

Mais conteúdo relacionado

Mais procurados (20)

PDF
Apresentação python fábio jr alves
Grupython Ufla
 
PPT
Introdução à Informática
Fabio Marques
 
PDF
Introdução a JavaScript
Bruno Catão
 
PPTX
Aula 06 - Sistema Binário
Suzana Viana Mota
 
PDF
Orientação a objetos em Python (compacto)
Luciano Ramalho
 
PPTX
Algoritmos e Técnicas de Programação - Curso Completo
thomasdacosta
 
PPTX
Informática Básica - Aula 05 - Sistema Operacional Windows
Joeldson Costa Damasceno
 
PDF
Python Introdução e Orientação a Objetos.pdf
MarioAthayde
 
PDF
Sistema operacional windows_10
Oseas_Lima
 
PPTX
Linguagem C - Ponteiros
Elaine Cecília Gatto
 
PPTX
Questionário de Informática básica
Nome Sobrenome
 
PDF
Introdução à Programação
Mario Sergio
 
PPT
Sistema operacional introdução
Cleber Ramos
 
PPSX
Comandos em python
Maria Silveira
 
PPT
Linguagem C clecioamerico
Clécio Américo de Lima
 
PDF
Introdução à analise e complexidade de algoritmos
Nécio de Lima Veras
 
PPTX
Programação orientada a objetos
Cleyton Ferrari
 
PDF
Apresentação Linguagem C
Ricardo Liyushiro Chikasawa
 
PPTX
Aula 3 - Sistemas operacionais - Linux
LucasMansueto
 
ODP
SLIDE SOBRE O LIBREOFFICE
Liana Évily
 
Apresentação python fábio jr alves
Grupython Ufla
 
Introdução à Informática
Fabio Marques
 
Introdução a JavaScript
Bruno Catão
 
Aula 06 - Sistema Binário
Suzana Viana Mota
 
Orientação a objetos em Python (compacto)
Luciano Ramalho
 
Algoritmos e Técnicas de Programação - Curso Completo
thomasdacosta
 
Informática Básica - Aula 05 - Sistema Operacional Windows
Joeldson Costa Damasceno
 
Python Introdução e Orientação a Objetos.pdf
MarioAthayde
 
Sistema operacional windows_10
Oseas_Lima
 
Linguagem C - Ponteiros
Elaine Cecília Gatto
 
Questionário de Informática básica
Nome Sobrenome
 
Introdução à Programação
Mario Sergio
 
Sistema operacional introdução
Cleber Ramos
 
Comandos em python
Maria Silveira
 
Linguagem C clecioamerico
Clécio Américo de Lima
 
Introdução à analise e complexidade de algoritmos
Nécio de Lima Veras
 
Programação orientada a objetos
Cleyton Ferrari
 
Apresentação Linguagem C
Ricardo Liyushiro Chikasawa
 
Aula 3 - Sistemas operacionais - Linux
LucasMansueto
 
SLIDE SOBRE O LIBREOFFICE
Liana Évily
 

Destaque (20)

ODP
Desenvolvendo aplicações web com python e web2py
Gilson Filho
 
ODP
Python no Celular
iuridiniz
 
PDF
Desenvolvendo aplicações Mobile em Python
Relsi Maron
 
PDF
Canivete python
Anderson Dantas
 
PDF
Curso de Python e Django
Osvaldo Santana Neto
 
PDF
Aprendendo python
Victor Marcelino
 
PDF
Introdução à Programação Python e Tk
Carlos Campani
 
PDF
Python - Guia de bolso
Jean Lopes
 
PDF
Orientação a Objetos em Python
Luciano Ramalho
 
PDF
Python para iniciantes
richardsonlima
 
PDF
Tratamento de exceções
Alvaro Oliveira
 
PDF
Padrao de projeto iterator
Alvaro Oliveira
 
PDF
Processamento paralelo
Alvaro Oliveira
 
PDF
WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?
Humberto Diógenes
 
PDF
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Alvaro Oliveira
 
PDF
Canivete suíço do Python
Douglas Soares de Andrade
 
PDF
Introdução a linguagem Python
Luciano Ramalho
 
PDF
Introdução à linguagem de programação Python
Carlos Schults
 
ODP
Matando o Java e Mostrando o Python
Osvaldo Santana Neto
 
PDF
Qualidade de software
Alvaro Oliveira
 
Desenvolvendo aplicações web com python e web2py
Gilson Filho
 
Python no Celular
iuridiniz
 
Desenvolvendo aplicações Mobile em Python
Relsi Maron
 
Canivete python
Anderson Dantas
 
Curso de Python e Django
Osvaldo Santana Neto
 
Aprendendo python
Victor Marcelino
 
Introdução à Programação Python e Tk
Carlos Campani
 
Python - Guia de bolso
Jean Lopes
 
Orientação a Objetos em Python
Luciano Ramalho
 
Python para iniciantes
richardsonlima
 
Tratamento de exceções
Alvaro Oliveira
 
Padrao de projeto iterator
Alvaro Oliveira
 
Processamento paralelo
Alvaro Oliveira
 
WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?
Humberto Diógenes
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Alvaro Oliveira
 
Canivete suíço do Python
Douglas Soares de Andrade
 
Introdução a linguagem Python
Luciano Ramalho
 
Introdução à linguagem de programação Python
Carlos Schults
 
Matando o Java e Mostrando o Python
Osvaldo Santana Neto
 
Qualidade de software
Alvaro Oliveira
 
Anúncio

Semelhante a Programando para web com python - Introdução a Python (20)

PDF
Curso de Python (Básico) - Português
Helio Colombe
 
PDF
Linguagem de Programação Python
Junior Sobrenome
 
KEY
Python, a arma secreta do Google
Luciano Ramalho
 
ODP
Python Emsl2009
Julio Cesar Eiras Melanda
 
PDF
Minicurso Python
rodrigopex
 
PDF
Comsolid2011 Introdução Python
Gleison Rodrigues
 
PDF
Python
Álvaro Justen
 
PDF
Python Training #1 ed.6
Fabio Spanhol
 
PDF
Python Training #1, ed. 6
Fabio Spanhol
 
PDF
Python Training #1 - ed5
Fabio Spanhol
 
PDF
Minicurso Python
guestac3de
 
PDF
Introducao ao python - Luciana Mota
lucianacmota
 
PDF
Administração de sistemas usando Python
Helio Loureiro
 
DOCX
Python, CPython, Pythonico, Cython
Marcos Aurelio Barranco
 
PDF
Introdução à Programação em Python
Rodrigo Hübner
 
PDF
Minicurso_AprenziagemDeMaquina_scikit_learn_aula0.pdf
edvonaldosantos
 
PPT
Python2.5.ppt
wildcat9335
 
DOCX
A lógica do Python e seus termos
Valore I/O
 
PDF
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Flávio Ribeiro
 
Curso de Python (Básico) - Português
Helio Colombe
 
Linguagem de Programação Python
Junior Sobrenome
 
Python, a arma secreta do Google
Luciano Ramalho
 
Python Emsl2009
Julio Cesar Eiras Melanda
 
Minicurso Python
rodrigopex
 
Comsolid2011 Introdução Python
Gleison Rodrigues
 
Python Training #1 ed.6
Fabio Spanhol
 
Python Training #1, ed. 6
Fabio Spanhol
 
Python Training #1 - ed5
Fabio Spanhol
 
Minicurso Python
guestac3de
 
Introducao ao python - Luciana Mota
lucianacmota
 
Administração de sistemas usando Python
Helio Loureiro
 
Python, CPython, Pythonico, Cython
Marcos Aurelio Barranco
 
Introdução à Programação em Python
Rodrigo Hübner
 
Minicurso_AprenziagemDeMaquina_scikit_learn_aula0.pdf
edvonaldosantos
 
Python2.5.ppt
wildcat9335
 
A lógica do Python e seus termos
Valore I/O
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Flávio Ribeiro
 
Anúncio

Programando para web com python - Introdução a Python

  • 2. Roteiro  Breve Histórico  Características  Por que Python?  Quem Usa?  Como Usar?
  • 3. Breve Histórico  Linguagem Criada em 1990, Por Guido van Rossun  Foco em usuários como físicos e engenheiros  Python foi concebida através de uma linguagem chamada ABC
  • 4. Características  Linguagem Interpretada  Tripagem dinâmica  Controle de Bloco é feita por indentação  Oferece tipos de alto nível  E orientado a objetos  Fácil aprendizado  Open Source  Biblioteca padrão muito rica
  • 5. Características  Multiplataforma: Linux/Unix, Windows, Symbian, MacOSX, etc  Multiparadigma: Procedural, Orientado a Objetos e Funcional
  • 6. Por que Python?  Os conceitos fundamentais da linguagem são simples de entender;  A sintaxe do Python é clara e fácil de aprender;  Os tipos pré-definidos em Python são poderosos e simples de usar;  O interpretador Python permite aprender e testar rapidamente trechos de código  Python é expressivo, com abstrações de alto nível => código curto e rápido desenvolvimento
  • 7. Por que Python?  Prototipação rápida  Desenvolvimento Web  Acesso a banco de dados  Código “enxuto”!  Computação numérica e científica  Jogos  3D
  • 8. Quem Usa?  Google (aplicações Web).  Yahoo (aplicações Web).  Microsoft (IronPython: Python para .NET).  Nokia (disponível para as linhas recentes de celulares e PDAs).  Disney (animações 3D).  Funceme(aplicações com Radares)  Mais casos: http://www.python.org/about/success/
  • 9. Como Usar?  Nas linguagens Interpretadas é executada utilizando o interpretador lê o código fonte e interpreta diretamente, durante a sua execução.  Tanto pode utilizar no Shell ou Uma IDE
  • 10. Instalando  Instalando  Entre no link http://www.python.org/getit/ e baixe para sua plataforma.  No windows: clique duas vezes, next, next, … e finish.  No linux: qualquer distribuíção já vem com Python!
  • 11. IDE Disponíveis  Idle :  Já vem com o Python. É bem simples de ser usado também.  Komodo-Edit:  E uma excelente opção de editor, bastante rico em recursos tais como autocomplete, multi-language e outros.  Eclipse:  Ideal para desenvolvimento Java. Mas existem plugins para se desenvolver em Python.  Pycham  E proprietário, Possui um conjunto de ferramentas úteis para um desenvolvimento produtivo.
  • 12. Utilizando o Shell  Para chamar o interpretador Python apenas digite “python” no prompt do shell:  Quando o shell é iniciado aparecerão três ‘>’ (“>>>”) indicando que ele está ativo e pode receber comandos $ python Python 2.5.1 (r251:54863, Sep 4 2007, 19:00:19) [GCC 4.1.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
  • 14. Saida public class Hello { public static void main(String[] args) { System.out.println("Hello, world!"); } } Print “Hello, World!” JAVA Python
  • 15. Saída  Salvar com a extensão .py Exemplo: alomundo.py  Entre na pasta que está o arquivo cd nomedapasta  Em seguida, rodar o comando: python alomundo.py
  • 16. Definições de Variáveis  Sintaxe nomeDaVariavel = valorAtribuido  Descobrir o tipo atual de uma variável, utiliza a função type()  type(nome) nome = “python” #String num = 1 # valor inteiro preco = 10.99 # valor ponto flutuante t = True # valor booleano
  • 17. Entrada  Sintaxe: nomeDaVariavel = input(’Texto para Saída’)  Para capturar informações do usuário podemos usar duas funções: input(“mensagem”) Espera que o usuários digite comandos ou valores raw_input(“mensagem”) Espera strings
  • 18. Delimitações  Uso de “;” no fim de comandos não é obrigatório  Blocos delimitados por identação def soma(a): . . . .return a+1 print soma(10) Não é um erro sintático, mas é desnecessário e portanto deselegante
  • 19. Comentários  Comentários de são feitos usando ‘#’  Para comentários de bloco pode-se usar string multilinhas com ‘”””’ “”” def inc(a): . . . .return a+1””” #print inc(10)
  • 20. Exercício: 1. Faça um programa que leia da entrada padrão um número, em seguida imprima ele na tela. 2. Agora faça um programa que leia dois números e em seguida imprime o resultado da multiplicação deles
  • 21. Controle de Fluxo  Nada de parênteses! Nada de chaves!  IF if expressão1: Comando1 ... elif expressão2: Comando3 ... else: ...
  • 22. Usando If #! /usr/bin/python # -*- coding: iso-8859-1 -*- x = input("Entre com um numero inteiro: ") if x < 0: print 'Numero negativo' elif x == 0: print 'Zero' elif x == 1: print 'Um' else: print 'Numero positivo'
  • 23. Controle de Fluxo  O loop While, tem como função repetir um bloco de comando ate que aconteça uma parada. while expressão2: Comando3 ...
  • 24. Controle de Fluxo  O for em Python podemos “varrer” uma sequencia que se difere de outra linguagens por ser utilizado como iterador de progressão aritmética. for variavel in rage(ni,nf-1): Cria uma lista a partir do inteiro ni até o inteiro nf-1 for variavel in lista
  • 25. Exemplo for for contador in range(1,6): print contador 1 2 3 4 5
  • 26. Estruturas de Dados  Lista[ ]  Lista é uma seqüência de valores indexadas por um inteiro. Uma lista pode conter qualquer tipo de valor, incluindo valores de tipos mistos. numero = [ 1, 2,3] nomes = ['maria','paulo','jose'] mistos=[1,’maria’,2]
  • 27. Estrutura de Dados: Listas [ ] Os elementos da lista podem ser acessados por meio de índices que vão de 0 até o comprimento da lista-1 lista = [ ‘maria’,’paulo’,’jose’,’carlos’] 0 1 2 3 >>> lista [0] maria
  • 28. Estrutura de Dados: Listas [ ] Fatias, ou slices, de uma lista podem ser geradas facilmente com o “:” Lista = [inicio:final] >>> n = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 ] >>> n[2:4] [3, 4]
  • 29. Estrutura de Dados: Listas [ ] Métodos Uteis 1 2 4 3 0 1 2 3 lista.extend(lista2)lista.append(8) lista.pop() lista.remove(2)
  • 30. Exercício: 1.Faça um programa que leia da entrada padrão um número, em seguida adicione e imprima a lista . 2.Seguindo o exemplo anterior: Crie uma nova lista e adicione na lista anterior; Remova um elemento na Posição 4; Imprima toda a lista;
  • 32. Python: Orientado a Objeto “Orientação a objetos, OO, é um termo que descreve uma série de técnicas para estruturar soluções para problemas computacionais. é um paradigma de programação no qual um programa e estruturado em objetos, e que enfatiza os aspectos abstração, encapsulamento, polimorfismo e herança.”
  • 33. E tudo é um Objeto Tudo em Python é no fim um objeto! list3.append(‘a’) Novos objetos (classes) podem ser facilmente adicionados aos tipos de dados já existentes em Python! De fato, programar em Python é normalmente feito de forma orientado a objetos!
  • 34. Definição de uma Classe A forma mais simples de definição de uma classe pode ser descrita dessa maneira: >>> class NomeDaClasse: <comando-1> . . . <comando-N>
  • 35. Definição de um Metodo Utiliza o comando def, para definir um método de uma classe: >>> class HelloMundo: def alomundo(self): print “Ola Mundo“
  • 36. Instanciando uma Classe Quando criamos a classe HelloMundo, criamos um novo tipo de dado. Os membros deste novo tipo são chamados instâncias deste tipo ou objetos. Criar uma nova instância é instanciar. Para instanciar o objeto HelloMundo: ... alo=HelloMundo() alo.alomundo()
  • 37. Definição de uma Classe Exemplo: class HelloMundo: #Definindo a Classe def alomundo(self): #Definindo o Método print “Ola Mundo“ alo=HelloMundo() #criando uma instância da classe alo.alomundo()
  • 38. Definição da Classe Privados Atributos e métodos que só podem ser acessados dentro da classe, usa-se “__” no início do nome Protected Apenas convenção e usa-se apenas um “_” no nome de métodos ou atributos, ex. _telefone class musica: _compositor=“Luiz Gonzaga” __ritmo=“Baiao” m=musica() m._compositor
  • 39. Definição da Classe class Contador(object): def __init__(this): this.contagem = {} def incluir(this, item): qtd = this.contagem.get(item, 0) + 1 this.contagem[item] = qtd def contar(this, item): return this.contagem[item]
  • 40. Definição da Classe class Contador(object): def __init__(this): this.contagem = {} def incluir(this, item): qtd = this.contagem.get(item, 0) + 1 this.contagem[item] = qtd def contar(this, item): return this.contagem[item] Em Python Não Usamos this
  • 41. Definição da Classe class Contador(object): def __init__(self): self.contagem = {} def incluir(self, item): qtd = self.contagem.get(item, 0) + 1 self.contagem[item] = qtd def contar(self, item): return self.contagem[item] Usamos self
  • 42. Argumento do Método self •Em todos métodos associados à instância definido dentro de uma classe devem ter o argumento self definido como primeiro argumento. •Maior flexibilidade na chamada de métodos. •É a referência para a própria instância da classe •Mesmo que você tem um método que não recebe nenhum argumento, ainda assim você deve definir que este tenha o argumento self.
  • 43. Construtor __init__( ) é um método especial que é invocado automaticamente quando um novo objeto é criado e que inicializa os atributos deste objetos. E opcional! class Hello: def _init_ (self,nome): self.nome = nome
  • 45. Herança Uma classe pode herdar a definição de outra classe Python não tem a palavra ‘extends’ como em Java A Herança multipla é suportada SuperClasse SubClasse SubClasse
  • 46. Exemplo Herança Para definir uma subclasse, coloque o nome da superclasse entre parênteses depois do nome da subclasse na primeira linha da definição. class Veiculo: def andar(self): print "Andei" class Carro(Veiculo): def andar(self): _numRodas=4 gol = Carro() gol.andar()
  • 47. Sobrecarga Redefinição de métodos já existente, com o mesmo nome. Quando um método da classe pai é redefinido na classe filha  Diz-se que o método foi sobrecarregado (overloaded)
  • 48. Redefinindo Métodos class Veiculo: def andar(self): print "Andei" class Carro(Veiculo): def andar(self): print ' Andei de Carro' gol = Carro() gol.andar()
  • 49. Redefinindo Métodos class Veiculo: def andar(self): print "Andei" class Carro(Veiculo): def andar(self): print ' Andei de Carro' gol = Carro() gol.andar()
  • 50. Redefinindo Métodos class Veiculo: def andar(self): print "Andei" class Carro(Veiculo): def andar(self): print ' Andei de Carro' gol = Carro() gol.andar() Andei de Carro
  • 51. Redefinindo Métodos class Veiculo: def andar(self): print "Andei" class Carro(Veiculo): def andar(self): Veiculo.andar(self) gol = Carro() gol.andar() Você pode chamar o método da superclasse
  • 52. Redefinindo Métodos Você pode redefinir métodos declarados na superclasse O mesmo vale para o método __init__ . No método __init__ das subclasses: parentClass.__init__(self,x,y) onde parentClass é o nome da classe pai.
  • 53. Redefinindo Métodos class Veiculo: def __init__(self,numPassageiros): self.numPassageiros = numPassageiros def andar(self): print "Andei" class Carro(Veiculo): _numRodas= None def __init__(self, _numRodas,numPassageiros): Veiculo. __init__(self,numPassageiros) self._numRodas= _numRodas def qtdPassageiros(self): print self.numPassageiros gol = Carro(4,6) gol.qtdPassageiros() Construtor da classe filha tem que chamar o da classe pai
  • 55. Polimorfismo Polimorfismo literalmente significa várias formas. Em Python, um método é polimórfico se ele tem diferentes implementações numa família de classes Ex: O operador ‘+’ é polimórfico ! se refere a diferentes operações quando usado, por exemplo, em inteiros e strings
  • 56. Exemplo Polimorfismo class Mamifero: def som(self): print 'emitir um som' class Homem(Mamifero): def som(self): print ' Oi' class Cachorro(Mamifero): def som(self): print ' Wuff ! Wuff' class Gato(Mamifero): def som(self): print ' Meaww' mamifero = Mamifero() mamifero.som() animais = [ Homem(),Cachorro(),Gato()] for animal in animais: animal.som()
  • 57. Exercício Crie uma Classe Chamada Conta Corrente, declarando o construtor com atributo numero e o método creditar() e debitar() Crie uma Classe Poupança tendo como atributo taxaDeJuros e com o metodo renderJuros(), que herda de Conta Corrente e
  • 62. O que é HTML? •HTML é a sigla para Hyper Text Markup Language. •HTML não é uma linguagem de programação. •HTML é uma linguagem de marcação. •As marcações são feitas através de <tags>.
  • 63. Tags •Deve-se sempre abrir e fechar as tags. •São os textos que ficam entre < > ou < />. •Geralmente são sempre pares,<p> e </p>.
  • 64. •Finalidade é ler o documento Html e exibir o conteúdo da página. •Não exibem as tags mas usam as tags para interpretar o conteúdo das mesmas. Browsers e o HTML
  • 66. •Apenas de um editor de texto! •Então abra o Notepad ou Kate e mão a obra! Do que precisamos para começar?
  • 67. Como criar um arquivo HTML •Abrir o editor de textos. •Criar um novo arquivo em branco. •Salvar o arquivo com a extensão .html •Iniciar a edição do arquivo.
  • 68. Arquivo básico HTML <html> <head> <title>Minha página de Internet</title> </head> <body> ...Conteúdo da página... </body> </html>
  • 69. •O texto entre <html> e </html> descreve o conteúdo da página. •O texto entre <head> e </head> é o cabeçalho da página, não é exibido no browser. •O texto entre <body> e </body> é o conteúdo visível da página no browser. •O texto entre <title> e </title> é o título da pagina
  • 70. Cabeçalhos HTML •Os cabeçalhos são definidos com as tags <h1> até <h6>. •Exemplo: •<h1>Isto é um cabeçalho</h1> •<h2>Isto é um cabeçalho</h2> •<h3>Isto é um cabeçalho</h3>
  • 71. Parágrafos HTML •Os parágrafos HTML são definidos com a tag <p>. • Caso tenha necessidade de quebrar alguma linha, utilize a tag <br> para fazer a quebra •Exemplo: •<p>Isto é um parágrafo.</p> •<p>Isto é um outro parágrafo. <br> • Isto ficará na linha de baixo •</p>
  • 72. Replique a seguinte pagina da web:
  • 74. Estilizando textos: Para colocar efeito em alguma frase ou palavra podemos utilizar as seguintes tag’s no documento: <b>, <i>, <u> e <s> Exemplo: <b> isto é uma frase em NEGRITO </b> <i> isto é uma frase em ITALICO</i> <u> isto é uma frase SUBLINHADA</u> <s> isto é uma frase TACHADA</s>
  • 76. Atributos HTML Elementos HTML podem ter atributos. Atributos fornecem informação adicional sobre um elemento. Atributos são sempre especificados na tag inicial. Atributos vem em pares como name="value". Valor de atributos devem sempre estar entre aspas duplas “ ”.
  • 77. Exemplos de atributos: Bgcolor: utilizado para definir a cor de fundo da página web Background: utilizado para definir uma imagem de fundo da página web. Text: utilizado para definir a cor dos textos da página web align: utilizado para alinhar o texto.
  • 80. Tag <font> Vimos que o atributo “text” modifica a cor de todo o conteudo do body. Para modificar apenas a cor de uma frase, ou uma palavras colocamos a frase dentro da tag <font> com o atributo color. Caso deseje mudra o tamanho da fonte, utilize o atributo size.
  • 82. Criando Listas em HTML Em HTML podemos criar basicamente três tipos de listas: listas de definição, listas não numeradas e listas numeradas.
  • 83. Lista não numeradas: As listas não numeradas funcionam semelhantes aos marcadores existentes em aplicativos como editores de texto. Para criarmos listas não numeradas utilizamos as tags <UL> para iniciarmos a lista e <LI> para inserirmos itens na lista.
  • 85. Lista numeradas: As listas numeradas são as mais comuns, a cada item inserido a numeração da lista cresce. Pode se utilizar números romanos( I,II,III), números comuns (1,2,3) ou até letras (a,b,c). Para criarmos listas numeradas utilizamos as tags OL para iniciarmos a lista e LI para inserirmos itens na lista.
  • 89. Características Uma simples e poderosa biblioteca do Python Um framework Python orientada a objetos web. Pacote auto-contido, só necessita do Python Não intrusivo Já vem com Servidor web Separa o código do layout do HTML É Gratis
  • 90. Por que Cherrypy Tem uma interface limpa;  É muito pythônico; ou seja, ele segue as convenções do Python muito bem (código é escassa e não poluente); Maturidade, tem muitas versões estáveis finais; Tem uma comunidade dedicada que desenvolve aplicativos implementados CherryPy;
  • 91. Perfil do Desenvolvedor Algum conhecimento da linguagem de programação Python. Alguma experiência com programação orientada a objetos básica. Alguns conhecimentos de HTML, que é necessária a construção de páginas web.
  • 92. Instalação Linux Baixe a versão mais recente CherryPy do repositório . Descompacte / untar os arquivos Vá para o diretório criado pela extração do arquivo. Tipo "python setup.py install" para instalar o módulo CherryPy
  • 93. Instalação Windows Para instalar o CherryPy basta fazer um download da biblioteca: https://pypi.python.org/pypi/CherryPy Selecione o arquivo que termina em "exe“ e next
  • 94. Algumas Definições: Servidor Web É uma interface que lida com o protocolo HTTP Seu objetivo é transformar pedidos HTTP em entidades que são passadas para o servidor de aplicação e então transformar a informação retornada pelo servidor de aplicação em uma resposta HTTP.
  • 95. Algumas Definições Aplicação: É um pedaço de software que pega uma unidade de informação e aplica nela a regra do negócio e retorna uma unidade processada de informação. Servidor de Aplicação: É um componente que hospeda uma ou mais aplicações. Servidor de Aplicação Web: É simplesmente a junção de um servidor web com um servidor de aplicação em um componente.
  • 97. Objetos de Publicação Qualquer objeto agregado ao objeto root é dito objeto publicado, isto significa que o objeto é acessível via rotina interna de mapeamento do objeto URL. Entretanto, não significa que o objeto é diretamente acessível via Web, para que isto ocorra o objeto deve ser exposto
  • 98. Expondo Objetos •A exposição de objetos em cherrypy são permitidos pelo atributo exposed, que pode ser diretamente setados para objetos que são chamados •Existe duas formas: class Root: def index(self): ... index.exposed = True @cherrypy.expose def index(self):
  • 99. Minha Primeira Aplicação # -*- coding: iso-8859-1 -*- # Alfabeto Latino import cherrypy # carregando biblioteca class HelloWorld: def index(self): return "Alô Mundo" index.exposed = True # permite definir quais métodos serão expostos na Web cherrypy.quickstart(HelloWorld(),’/’) #publica instância da classe e inicia servidor URI-> http://localhost:8080
  • 100. Minha Primeira Aplicação # -*- coding: iso-8859-1 -*- # Alfabeto Latino import cherrypy # carregando biblioteca class HelloWorld: def index(self): return "Alô Mundo" index.exposed = True # permite definir quais métodos serão expostos na Web cherrypy.quickstart(HelloWorld(),’/ ’) #publica instância da classe e inicia servidor URI-> http://localhost:8080 Neste caso particular o site raiz é mapeado pelo método index()
  • 101. Arquivo de configuração do CherryPy O CherryPy usa um simples arquivo de configuração para customizar seu comportamento. •Para executar este arquivo de configuração para o site use cherrypy.config.update(arquivo_ou_dicionário) #global.cfg [global] server.socket_port = 8000 server.thread_pool = 10 # quantas thread o servidor pode iniciar tools.sessions.on = True # habilita sessão, usada sites complexos tools.staticdir.root = "/home/site" # diretório onde estão aplic. estáticas [/static] tools.staticdir.on = True tools.staticdir.dir = "static"
  • 102. Encontrando o objeto correto Ao receber uma URI, o CherryPy reparte ela em componentes de caminho(path) e procura um objeto no site que é a melhor resposta para esta URI particular. Para cada componente de caminho ele tenta encontrar um objeto de mesmo nome, começando pela raiz(root) e vai descendo por cada componente até encontrá-lo.
  • 103. Recebendo dados de Formulários HTML Qualquer método pode receber dados adicionais do formulário HTML usando argumentos (keyword arguments). <form action=“nomeMetodo " method="post"> campos do formulário aqui dentro das tags </form> GET é o método HTML padrão. Para submeter um formulário HTML usando POST é preciso especificar no atributo “method” o valor “POST”.