SlideShare uma empresa Scribd logo
1 de 104
Baixar para ler offline
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
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:
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>
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.
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.
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.
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.
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

Trabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonTrabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - Python
Janderson Campêlo
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
Adriano Teixeira de Souza
 

Mais procurados (20)

Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em Python
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Logica programacao python-slides
Logica programacao python-slidesLogica programacao python-slides
Logica programacao python-slides
 
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
 
Trabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonTrabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - Python
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação Python
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Python e django na prática
Python e django na práticaPython e django na prática
Python e django na prática
 
Aula 2 - Lógica de Programação
Aula 2 - Lógica de ProgramaçãoAula 2 - Lógica de Programação
Aula 2 - Lógica de Programação
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Sql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumoSql básico - Teoria e prática: Um grande resumo
Sql básico - Teoria e prática: Um grande resumo
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Linguagem C - Ponteiros
Linguagem C - PonteirosLinguagem C - Ponteiros
Linguagem C - Ponteiros
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos Básicos
 
Introduction To Python | Edureka
Introduction To Python | EdurekaIntroduction To Python | Edureka
Introduction To Python | Edureka
 

Destaque

Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
Jean Lopes
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
Alvaro Oliveira
 
Padrao de projeto iterator
Padrao de projeto iteratorPadrao de projeto iterator
Padrao de projeto iterator
Alvaro Oliveira
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação Python
Carlos Schults
 

Destaque (20)

Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyDesenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2py
 
Python no Celular
Python no CelularPython no Celular
Python no Celular
 
Desenvolvendo aplicações Mobile em Python
Desenvolvendo aplicações Mobile em PythonDesenvolvendo aplicações Mobile em Python
Desenvolvendo aplicações Mobile em Python
 
Canivete python
Canivete pythonCanivete python
Canivete python
 
Aprendendo python
Aprendendo pythonAprendendo python
Aprendendo python
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e Tk
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
 
Padrao de projeto iterator
Padrao de projeto iteratorPadrao de projeto iterator
Padrao de projeto iterator
 
Processamento paralelo
Processamento paraleloProcessamento paralelo
Processamento paralelo
 
WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?
WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?
WSGI: a resposta para a questão definitiva sobre Python, a web e tudo mais?
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações web
 
Canivete suíço do Python
Canivete suíço do PythonCanivete suíço do Python
Canivete suíço do Python
 
Introdução à linguagem de programação Python
Introdução à linguagem de programação PythonIntrodução à linguagem de programação Python
Introdução à linguagem de programação Python
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
 
Qualidade de software
Qualidade de softwareQualidade de software
Qualidade de software
 
Python 01
Python 01Python 01
Python 01
 
Postgresql + Python = Power!
Postgresql + Python = Power!Postgresql + Python = Power!
Postgresql + Python = Power!
 
Introducao python 2010
Introducao python 2010Introducao python 2010
Introducao python 2010
 

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

Comsolid2011 Introdução Python
Comsolid2011 Introdução PythonComsolid2011 Introdução Python
Comsolid2011 Introdução Python
Gleison Rodrigues
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Kratos879
 

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

Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação Python
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
Python Emsl2009
Python Emsl2009Python Emsl2009
Python Emsl2009
 
Aula python
Aula pythonAula python
Aula python
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Python
 
Comsolid2011 Introdução Python
Comsolid2011 Introdução PythonComsolid2011 Introdução Python
Comsolid2011 Introdução Python
 
Python
PythonPython
Python
 
Python Training #1 ed.6
Python Training #1 ed.6 Python Training #1 ed.6
Python Training #1 ed.6
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6
 
Python Training #1 - ed5
Python Training #1 - ed5Python Training #1 - ed5
Python Training #1 - ed5
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Python
 
Introducao ao python - Luciana Mota
Introducao ao python - Luciana MotaIntroducao ao python - Luciana Mota
Introducao ao python - Luciana Mota
 
Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando Python
 
Python, CPython, Pythonico, Cython
Python, CPython, Pythonico, CythonPython, CPython, Pythonico, Cython
Python, CPython, Pythonico, Cython
 
Python2.5.ppt
Python2.5.pptPython2.5.ppt
Python2.5.ppt
 
A lógica do Python e seus termos
A lógica do Python e seus termosA lógica do Python e seus termos
A lógica do Python e seus termos
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
 
Apostila c++ básico
Apostila c++ básicoApostila c++ básico
Apostila c++ básico
 
Apostila c++ básico (1)
Apostila c++ básico (1)Apostila c++ básico (1)
Apostila c++ básico (1)
 

Último

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Dirceu Resende
 

Último (11)

COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
 
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docxATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAEAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
 
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docxATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
 
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo Pagliusi
 
Apostila e caderno de exercicios de WORD
Apostila e caderno de exercicios de  WORDApostila e caderno de exercicios de  WORD
Apostila e caderno de exercicios de WORD
 
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
 
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdfFrom_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
 

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
  • 61.
  • 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:
  • 73.
  • 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>
  • 75.
  • 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.
  • 78.
  • 79.
  • 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.
  • 81.
  • 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.
  • 84.
  • 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.
  • 86.
  • 87.
  • 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”.