Download - Python na Web
![Page 1: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/1.jpg)
Python na WebPython na Web
Igor Sobreirawww.igorsobreira.com
![Page 2: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/3.jpg)
Como se programa em Python pra web?
![Page 4: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/4.jpg)
Existem muitos frameworks
muitos mesmo...
![Page 5: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/6.jpg)
Começando por baixo...
![Page 7: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/7.jpg)
WSGIWeb Server Gateway Interface
PEP 333
![Page 8: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/8.jpg)
Uma interface que permite servidores e aplicações conversarem, de maneira
simples e portável
![Page 9: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/9.jpg)
Ilustração de Ian Bicking
![Page 10: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/10.jpg)
![Page 11: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/11.jpg)
“...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](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/12.jpg)
Middleware
![Page 13: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/13.jpg)
Ilustração de Ian Bicking
![Page 14: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/14.jpg)
• Autenticação
• Compressão
• Debug
• Signed Cookies
• etc...
![Page 15: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/15.jpg)
• 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](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/16.jpg)
Frameworks
![Page 17: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/18.jpg)
Servidor de aplicaçõesCMS
Conent Management System
![Page 19: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/19.jpg)
• 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](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/20.jpg)
• 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](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/21.jpg)
![Page 22: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/23.jpg)
• Full Stack
• Também implementou seus componentes
• Interface administrativa muito rica (dá pra programar pelo browser!)
![Page 24: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/24.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/25.jpg)
Monte o seu!Monte o seu!
![Page 26: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/26.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/27.jpg)
Mas eu quero fazer tudo Mas eu quero fazer tudo sozinho!sozinho!
![Page 28: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/28.jpg)
Boa sorte :-)Boa sorte :-)
![Page 29: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/29.jpg)
O que mais?não exatamente python-related
related
![Page 30: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/30.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/31.jpg)
• Fabric (Python)
• Capistrano (Ruby)
Use um sistema de controle de Use um sistema de controle de deploymentdeployment
![Page 32: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/32.jpg)
Exemplo do Fabricfabfle.py
$ fab deploy$ fab deploy
![Page 33: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/33.jpg)
É isso. Dúvidas?É isso. Dúvidas?
![Page 34: Python na Web](https://reader030.vdocuments.net/reader030/viewer/2022012316/5552c1bfb4c905920f8b4938/html5/thumbnails/34.jpg)
• www.igorsobreira.com
Contato
• www.grupypb.net
• www.python.org
• www.python.org.br
Junte-se a comunidade