twp65 desenvolvimento web intro.pdf

17
Desenvolvimento Web Introdução [email protected]

Upload: mjty

Post on 01-Feb-2016

239 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TWP65 Desenvolvimento Web Intro.pdf

Desenvolvimento Web Introdução [email protected]

Page 2: TWP65 Desenvolvimento Web Intro.pdf

Requisições e respostas Digito o endereço e aperto enter...

Passo 1: o usuário digita a URL e envia a requisição

Passo2 : o navegador converte a requisição e passa para a internet

Requisição

Uma requisição para mim... Legal!

Passo3 : o servidor Web recebe a requisição e decide o que fazer

Aqui temos duas possibilidades: se a requisição for de um conteúdo estático basta localizá-lo e responder, caso seja um conteúdo dinâmico então devemos gerá-lo

Page 3: TWP65 Desenvolvimento Web Intro.pdf

Requisição e resposta Passo4 : o servidor processa a requisição criando uma resposta que vai pela internet até o navegador

Aqui vai a resposta...

resposta

Exatamente o que eu queria!

Possíveis tarefas no passo 4: caso seja um conteúdo dinâmico devo procurar o programa a ser executado, rodar o programa, capturar a saída gerada, que finalmente é enviada.

...

Page 4: TWP65 Desenvolvimento Web Intro.pdf

Desenvolvimento Web

• “Python: a única linguagem com mais frameworks web do que keywords”

• Frameworks: Plone, Django, Web2py, Pyramid

• Micro Frameworks: CherryPy, Bottle, Flask

• WSGI (Web Server Gateway Interface)

– Padrões de acesso e comunicação entre servidores Web e aplicações Python

– Não é J2EE ;-)

Page 5: TWP65 Desenvolvimento Web Intro.pdf

Web2py

• InfoWorld: best full-stack Python framework • Bossie: Best Open Source Development Software • MVC:

– Modelo: dados – Controladores: regras do negócio – Visões: apresentação

• Autocontido == full-stack framework • Seguro • DAL (Data Access Layer) • Deploy rápido e distribuição fácil

Page 6: TWP65 Desenvolvimento Web Intro.pdf

Web2py

• Princípios Python

– DRY – Don’t Repeat Yourself

– Deve existir apenas uma única maneira óbvia de fazer algo

– Explícito é melhor que implícito (não segue)

Page 7: TWP65 Desenvolvimento Web Intro.pdf

Hello World

• Habilitar a opção “Não usar servidor proxy para servidores locais”

• web2py.exe no diretório descompactado

• Definir uma senha para administrador

• Clicar em “Administrative Interface”

• Coloque a senha que você definiu

• Três opções: admin, examples e welcome

• Depois iremos aprender a utilizar appliances

Page 8: TWP65 Desenvolvimento Web Intro.pdf

Hello World

• Nova aplicação básica: “Hello World”

• Editar o controlador default.py def index():

return "Minha primeira mensagem"

• ctrl+S

• Voltar e clicar no Hello World

Page 9: TWP65 Desenvolvimento Web Intro.pdf

Hello World

• Editar novamente o controlador default.py def index():

return dict(msg="FATEC SJC")

• ctrl+S

• Agora vamos editar a visão default/index

Page 10: TWP65 Desenvolvimento Web Intro.pdf

Hello World

• Apagar tudo e trocar na visão default/index <html>

<head></head>

<body>

<h1>{{=msg}}</h1>

</body>

</html>

• ctrl+S

Page 11: TWP65 Desenvolvimento Web Intro.pdf

Contar visitantes

• Editar controlador default.py def index():

if not session.counter:

session.counter = 1

else:

session.counter += 1

return dict(msg="Python Zumbi",

cont=session.counter)

Page 12: TWP65 Desenvolvimento Web Intro.pdf

Contar visitantes

• Visão default/index <html>

<head></head>

<body>

<h1>{{=msg}}</h1>

<h2>Visitantes: {{=cont}}</h2>

</body>

</html>

• Visitantes diferentes possuem contadores diferentes

Page 13: TWP65 Desenvolvimento Web Intro.pdf

Duas páginas

• Iremos criar duas páginas

• A primeira solicita o nome em um formulário

• Seremos então redirecionados para a segunda

• A segunda irá dar uma saudação com o nome

Page 14: TWP65 Desenvolvimento Web Intro.pdf

Duas páginas

• Incluir no controlador default.py

def primeira():

return dict()

def segunda():

return dict()

Page 15: TWP65 Desenvolvimento Web Intro.pdf

Duas páginas

• Criar a visão default/primeira {{extend 'layout.html'}}

Qual é o seu nome?

<form action="segunda">

<input name="nome" />

<input type="submit" />

</form>

Page 16: TWP65 Desenvolvimento Web Intro.pdf

Duas páginas

• Criar a visão default/segunda

{{extend 'layout.html'}}

<h1>Olá {{=request.vars.nome}}</h1>

Page 17: TWP65 Desenvolvimento Web Intro.pdf

Appliances

• http://www.web2py.com/appliances

• Email Contact Form

• Sudoku Solver

• Train Counter Game

• Quiz Builder

• EcardsOnMap (é grande...)