python na web

34
Python na Web Python na Web Igor Sobreira www.igorsobreira.com

Upload: igor-sobreira

Post on 13-May-2015

7.504 views

Category:

Technology


5 download

DESCRIPTION

Uma visão geral de como usar Python para desenvolvimento web.

TRANSCRIPT

Page 1: Python na Web

Python na WebPython na Web

Igor Sobreirawww.igorsobreira.com

Page 2: Python na Web

Eu

• sou Igor Sobreira

• programo em Python a 4 anos

• atualmente só com web

• Smart Nuts Technology

• Soda Virtual

• Faço TSI no IFPB (antigo CEFET-PB)

• Velejo de windsurf nas horas vagas (e raras)

Page 3: Python na Web

Como se programa em Python pra web?

Page 4: Python na Web

Existem muitos frameworks

muitos mesmo...

Page 5: Python na Web

4SuiteAlbatrossAquariun

BerryBottle

CircuitsCherryPyCrusader

CymberlineDivmod Nevow

DjangoGizmo

JOWWeb2JunoZope

Fonte: http://www.slideshare.net/hdiogenes/wsgi-pycon-brasil-2008-presentation (Humberto Diógenes)

SnakeletsSparckSpyce

TurboGearsWaspweb.pyweb2pywebpyteWebware

KarrigellMaki

mod_pythonmnmlnewfPastePylons

Python Server PagesPython Servlet Engine

Python GearfshPyWebLib

QPQuixote

SkunkWeb

Page 6: Python na Web

Começando por baixo...

Page 7: Python na Web

WSGIWeb Server Gateway Interface

PEP 333

Page 8: Python na Web

Uma interface que permite servidores e aplicações conversarem, de maneira

simples e portável

Page 9: Python na Web

Ilustração de Ian Bicking

Page 10: Python na Web
Page 11: Python na Web

“...WSGI must be easy to implement...”

PEP 333

Mas não pra vocês, e sim pra quem cria frameworks e servidores

Page 12: Python na Web

Middleware

Page 13: Python na Web

Ilustração de Ian Bicking

Page 14: Python na Web

• Autenticação

• Compressão

• Debug

• Signed Cookies

• etc...

Page 15: Python na Web

• Apache (mod_wsgi)

• Paste

• Cherrypy

• Twisted

• wsgiref (builtin)

Alguns servidores WSGI

http://www.wsgi.org/wsgi/Servershttp://www.wsgi.org/wsgi/Servers

Page 16: Python na Web

Frameworks

Page 17: Python na Web

O que eu preciso?no mínimo...

• Persistência de dados

• Engine de templates

• Mapeador de URLs

• Controle de sessões

• Formulários e validação

• Outras apresentações do conteúdo

• RSS, Atom, JSON, XML

O que temos por aí?O que temos por aí?

Page 18: Python na Web

Servidor de aplicaçõesCMS

Conent Management System

Page 19: Python na Web

• Full Stack, e extremamente fexível

• Reúsa vários componentes já existentes

• É fácil substituir qualquer um

• a idéia é justamente essa!

Page 20: Python na Web

• Full Stack, também reúsa componentes WSGI existentes

• mas não tanto com a flosofa de fexibilidade do Pylons

• aliás, TG2 usa Pylons :-)

TurboGears

Page 21: Python na Web
Page 22: Python na Web

Django• Atualmente o mais popular no mundo python

• Full Stack, e não reúsa nada

• isso ajuda muito a integração interna de componentes

• Quebra seu “projeto” em “aplicações”

• facilita muito o reúso (já tem muita app por aí)

• ele mesmo já tem algumas, como o admin

é o que eu uso :-)

Page 23: Python na Web

• Full Stack

• Também implementou seus componentes

• Interface administrativa muito rica (dá pra programar pelo browser!)

Page 24: Python na Web

Google App Engine

• Rode sua aplicação na infraestrutura do Google

• Autenticação pelo Google

• Big Table

• Suporta vários frameworks

Page 25: Python na Web

Monte o seu!Monte o seu!

Page 26: Python na Web

Escolha os módulos que você mais gosta e use

SQLAlchemy, DejaVu, Storm, SQLAlchemy, DejaVu, Storm, CounchDB, MongoDB...CounchDB, MongoDB...

Jinja2, Genhi, MakoJinja2, Genhi, Mako

BeakerBeaker

RoutesRoutes

PastePaste CherryPyCherryPy

WerkzeugWerkzeugRepozeRepoze

......

Page 27: Python na Web

Mas eu quero fazer tudo Mas eu quero fazer tudo sozinho!sozinho!

Page 28: Python na Web

Boa sorte :-)Boa sorte :-)

Page 29: Python na Web

O que mais?não exatamente python-related

related

Page 30: Python na Web

Use um sistema de controle de Use um sistema de controle de versãoversão

• Mas eu acho que não precis...

• Você tá errado, use!

Bazar

Page 31: Python na Web

• Fabric (Python)

• Capistrano (Ruby)

Use um sistema de controle de Use um sistema de controle de deploymentdeployment

Page 32: Python na Web

Exemplo do Fabricfabfle.py

$ fab deploy$ fab deploy

Page 33: Python na Web

É isso. Dúvidas?É isso. Dúvidas?

Page 34: Python na Web

• www.igorsobreira.com

[email protected]

Contato

• www.grupypb.net

• www.python.org

• www.python.org.br

Junte-se a comunidade