python na web

Post on 13-May-2015

7.505 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Python na WebPython na Web

Igor Sobreirawww.igorsobreira.com

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)

Como se programa em Python pra web?

Existem muitos frameworks

muitos mesmo...

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

Começando por baixo...

WSGIWeb Server Gateway Interface

PEP 333

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

simples e portável

Ilustração de Ian Bicking

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

PEP 333

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

Middleware

Ilustração de Ian Bicking

• Autenticação

• Compressão

• Debug

• Signed Cookies

• etc...

• Apache (mod_wsgi)

• Paste

• Cherrypy

• Twisted

• wsgiref (builtin)

Alguns servidores WSGI

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

Frameworks

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í?

Servidor de aplicaçõesCMS

Conent Management System

• Full Stack, e extremamente fexível

• Reúsa vários componentes já existentes

• É fácil substituir qualquer um

• a idéia é justamente essa!

• 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

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 :-)

• Full Stack

• Também implementou seus componentes

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

Google App Engine

• Rode sua aplicação na infraestrutura do Google

• Autenticação pelo Google

• Big Table

• Suporta vários frameworks

Monte o seu!Monte o seu!

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

......

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

Boa sorte :-)Boa sorte :-)

O que mais?não exatamente python-related

related

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

• Fabric (Python)

• Capistrano (Ruby)

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

Exemplo do Fabricfabfle.py

$ fab deploy$ fab deploy

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

• www.igorsobreira.com

• igor@igorsobreira.com

Contato

• www.grupypb.net

• www.python.org

• www.python.org.br

Junte-se a comunidade

top related