89
Oficina de Desenvolvimento Web com Python e Web2py

Desenvolvimento web com python e web2py

Embed Size (px)

Citation preview

Oficina de

Desenvolvimento Web com

Python e Web2py

Quem?

- Relsi Maron- Programador Backend- 7 Anos no teclado- 2 Anos num relacionamento sério com Python- http://github.com/relsi- http://pt.slideshare.net/relsi- http://linkedin.com/in/relsi- http://ikebanacw.com

Quem?

Introdução ao Python

Introdução ao Python

- Linguagem de altíssimo nível (VHLL)- Criada por Guido van Rossum em 1991- Interpretada e interativa- Multiplataforma (Desktop, Web, Mobile, Embarcados) - Multipropósito- Sintaxe clara e fácil de aprender- Extensível em C e C++- Comunidade Receptiva (e sem mi-mi-mi)- Muita documentação- Muitas soluções (e não é aquela gambizinha!!)

Introdução ao Python - Multipropósito

Introdução ao Python

Introdução ao Python

Introdução ao Python

Introdução ao Python

Introdução ao Python

Python é Dinamicamente Tipada.

Operadores Matemáticos.

Operadores Matemáticos.

Tipos de dados – Strings.

Tipos de dados – Listas.

Armazenam uma sequência de elementos

Tipos de dados – Listas.

Armazenam uma sequência de elementos

Tipos de dados – Tuplas.

Iguais as Listas, porém são imutáveis

Tipos de dados – Dicionários

Armazenam dados no formato Chave:Valor

Tipos de dados – Dicionários

Armazenam dados no formato Chave:Valor

Controle.

Controle.

Controle.

Controle.

Funções.

Onde aprender mais?

https://docs.python.org/2/tutorial/

https://docs.python.org/3/tutorial/

Introdução ao Web2py.

Por que Web2py?

- Framework Python de desenvolvimento para web, full stak- Criado por Massimo di Pierro em 2007- Mantido por Profissionais e Professores de Engenharia e Ciência da Computação- Foco no aprendizado- Sem instalação ou configuração- Seguro (OWASP)- MVC- Compatibilidade Reversa- Leve e Escalável- Deploy simples- Helpers

Estrutura.

Estrutura.

Admin.

Editor Online.

Admin de Banco.

Admin de Banco.

Download

http://web2py.com/init/default/download

Executando

python2.7 web2py.py -a 'senha' -i 127.0.0.1 -p 8000

Executando

http://localhost:8000

http://localhost:8000/nome_da_app

App Scaffolding

http://localhost:8000/admin

App Scaffolding

App Scaffolding

App Scaffolding

Usando a Documentação.

http://web2py.com/book

MVC

MVC

MVC

MVC

MVC

MVC

DAL

Database Abstraction Layer (DAL)

Uma API que mapeia objetos python em objetos de banco de dados como queries, tabelas e registros.

A DAL gera dinâmicamente o SQL em tempo real de acordo com o banco de dados

que está sendo utilizado.

A aplicação fica independente* do banco de dados utilizado.

DAL

DAL

DAL

DAL

DAL

- string- text- password- integer- double- boolean- date- time- datetime- blob- upload- reference TABLENAME

DAL

DAL

Inner Join

DAL

Inner Join

DAL

Left outer join

DAL

Left outer join

DAL

EU QUERO VER NA WEB!!!!!!!

DAL

controllers/default.py

DAL

views/default/listar_clientes.html

DAL

views/default/listar_clientes.html

http://localhost:8001/appfisl/default/listar_clientes

DAL

EU QUERO EXPOR UM WEBSERVICE! CRIA UMAFUNÇÃO QUE ME RETORNE

UM JSON DESSA TABELA!

DAL

views/default/listar_clientes.html

http://localhost:8001/appfisl/default/listar_clientes.json

DAL

views/default/listar_clientes.html

http://localhost:8001/appfisl/default/listar_clientes.xml

DAL

Controllers/default.py

SQLFORM

SQLFORM

O SQLFORM provê uma API de alto nível para construirformulários para criação, alteração e exclusão de registros

de uma determinada tabela no banco de dados.

SQLFORM

controllers/default.py

SQLFORM

views/default/cadastrar_cliente.html

SQLFORM

views/default/cadastrar_cliente.html

SQLFORM

controllers/default.py

SQLFORM

views/default/alterar_cliente.html

SQLFORM

views/default/alterar_cliente.html

http://localhost:8001/appfisl/default/alterar_cliente/1

SQLFORM.grid

controllers/default.py

SQLFORM.grid

views/default/clientes.html

SQLFORM.grid

views/default/clientes.html

SQLFORM.grid

views/default/clientes.html

Autenticação

controller

view

Autenticação

http://..../[controller]/[function]/login http://..../[controller]/[function]/logout http://..../[controller]/[function]/register http://..../[controller]/[function]/profile http://..../[controller]/[function]/retrieve_password http://..../[controller]/[function]/change_password

Autenticação

controller

view

Autenticação

Controle

controller

view

Controle

Mapeamento de URL

Mapeamento de URL

Deploy

Comunidade

E SE EU PRECISAR DE AJUDA?

Comunidade