PYTHON NA WEB
APRESENTANDO O WEB2PY
QUEM VOS FALA?
• Profeta em tempo integral
• Entusiasta Python!
• Engenheiro de
Computação pela UEFS
• Aluno regular do me...
ESTUDA O QUE?
TRABALHA EM QUE?
TRABALHO:
• Fazendo o cliente feliz!
• Sempre além do
expediente;
• Ouvindo o cliente querer
me pagar menos e
querendo que...
E TAMBÉM ME DIVIRTO,
NÉ?
EM TUDO NA MINHA VIDA EU
PROGRAMO!
E EM TODAS ELAS EU USO OU JÁ USEI
PYTHON
O QUE EU VOU FALAR?
• Como usar Python na
web
• Frameworks
• Web2py
COMO USAR PYTHON NA
WEB?
FRAMEWORKS!
MUITOS FRAMEWORKS!!!
TIPOS DE FRAMEWORKS
Micro frameworks Full-stack frameworks
Micro framework
• Se concentra no
essencial
• Foco em simplicidade e
extensibilidade
• MVC
• HTTP Framework
Micro framework
Full-stack frameworks
• Tudo que você precisa está
ali!
• MVC
Full-stack frameworks
QUE FRAMEWORK É ESSE?
• Open source - https://github.com/web2py/web2py
• Database-driven web-applications
• Rápido, extensível e seguro!
• Pytho...
• Criado em 2007
• Ferramenta de ensino a
programação web
• Velocidade, facilidade e
segurança,
retrocompatibilidade
• "De...
• O projeto cresceu e
ganhou colaboradores!
• E prêmios!
• Model-View-Controller
(MVC)
• Separação de
interesses
• Não há incorporação
de código em páginas
HTML.
• HTML é gerado
p...
• Segurança
• 10 maiores problemas
de segurança
• Cross Site Scripting
(XSS)
• SQL Injection
The Open Web Application Secu...
O QUE HÁ NA CAIXA?
Python Interpreter
Apache, Nginx, Lighttpd,
etc.
Rocket web server
core libraries: request, response, session, cache,
help...
E COMO INSTALAR ISSO?
E SEM CONFIGURAÇÃO!
LINUX MAC OS WINDOWS
WELCOME APP
ADMIN LOGIN
PAINEL
ADMINISTRATIVO
WELCOME APP
WELCOME APP
WELCOME APP
MODELS
MODELS - DAL
• DAL - Database Abstraction
Layer
• Mapeia objetos Python em
objetos do banco
• Queries
• Tabelas
• Registro...
MODELS - DAL
db = DAL('sqlite://storage.db')
db.define_table('mytable', Field('myfield'))
rows = db(db.mytable.myfield !=
...
MODELS ++
• Lazy tables
• Validadores
• Banco de dados legados
• Transações distribuídas
• Campos virtuais
• Exportação e ...
VIEWS
VIEWS
• Código Python embarcado
• Sintaxe Python modificada
• Não precisa identar
• pass é utilizada como delimitador de b...
VIEWS
<ul>
{{for item in items:}}
<li>{{=item}}</li>
{{pass}}
</ul>
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
</ul>
tems' é um...
VIEWS
<ul>
{{while k > 0:}}
<li>{{=k}}{{k = k - 1}}</li>
{{pass}}
</ul>
<ul>
<li>3</li>
<li>2</li>
<li>1</li>
</ul>
ara ‘k...
VIEWS
Core
Python embarcado
HTML gerado
PAGE LAYOUT
• Views podem estender ou incluir outras
views!
PAGE LAYOUT
<html>
<body>
<div class="sidebar">
{{include}}
</div>
</body>
</html>
{{extend 'layout.html'}}
<h1>Hello Worl...
PAGE LAYOUT
<html>
<body>
<div class="sidebar">
</div>
{{include footer.html}}
</body>
</html>
<div class="footer">My
Foot...
VIEWS ++
• Blocks
• Functions
• Helpers
• Geradores de HTML
• Server-side DOM
CORE
Controllers
CORE
Requests, responses, sessions, cache, views, DAL, i18n,
cookies, modulos, dispatching, dentre outros
http://hostname/...
AUTH
AUTH
• Controle de acesso de usuários
• Registro
• Login
• Logout
• Mudança de senha
• Email de confirmação
AUTH
• API’s embutidas
• Gmail
• LinkedIn
• Facebook
• Dropbox
AUTH
• Anotações
• @auth.requires_login()
• @auth.requires_members
hip(‘nome_grupo')
@auth.requires_login()
def list_users...
O QUE EU NÃO
MENCIONEI
O QUE EU NÃO MENCIONEI
Forms e validadores
Email e SMSServiços
jQuery e Ajax
Components e plugins
Receitas de deploy
Memca...
CASES
WEB2CANVAS
http://web2canvas.x4start.com/
GLOBALEAKS
https://globaleaks.org/
FLUXO DE CAIXA
http://fluxodecaixa.com.br/
ONDE APRENDER?
Cursos, livros, tutoriais
ONDE APRENDER?
Livro do web2py web2pyslices web2py cookbook
killer-web-development.com
web2py-users
web2py-users-brazil Vi...
ONDE APRENDER?
“USE THE SOURCE, LUKE"
ANTES QUE EU ESQUEÇA:
• O Web2py é ótimo!
• Uma incrível opção para aprender
desenvolvimento web!
• Uma fantástica escolha...
PERGUNTAS
?
matheus.mcas@gmail.com
@matheuscas
https://github.com/matheuscas
mohammeds.com.br
/matheuscas
Python na Web - Apresentando o web2py
Python na Web - Apresentando o web2py
Python na Web - Apresentando o web2py
Python na Web - Apresentando o web2py
Python na Web - Apresentando o web2py
Python na Web - Apresentando o web2py
Python na Web - Apresentando o web2py
Upcoming SlideShare
Loading in …5
×

Python na Web - Apresentando o web2py

572 views

Published on

Apresentação realizada no primeiro Python Day Feira de Santana, realizado em Feira de Santana, Bahia, pelo grupo Práticas de Software. Esta apresentação, essencialmente, apresenta o web2py à comunidade de Feira de Santana e região, mostrando e explicando algumas de suas incríveis características e recursos.

Published in: Software
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
572
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
20
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Python na Web - Apresentando o web2py

  1. 1. PYTHON NA WEB APRESENTANDO O WEB2PY
  2. 2. QUEM VOS FALA? • Profeta em tempo integral • Entusiasta Python! • Engenheiro de Computação pela UEFS • Aluno regular do mestrado em Ciência da Computação pela UFBA • Maomé ou Mohammed, vulgo Matheus Cardoso
  3. 3. ESTUDA O QUE?
  4. 4. TRABALHA EM QUE?
  5. 5. TRABALHO: • Fazendo o cliente feliz! • Sempre além do expediente; • Ouvindo o cliente querer me pagar menos e querendo que eu faça maravilhas! • Sob pressão: se tudo der errado a culpa é minha!
  6. 6. E TAMBÉM ME DIVIRTO, NÉ?
  7. 7. EM TUDO NA MINHA VIDA EU PROGRAMO! E EM TODAS ELAS EU USO OU JÁ USEI PYTHON
  8. 8. O QUE EU VOU FALAR? • Como usar Python na web • Frameworks • Web2py
  9. 9. COMO USAR PYTHON NA WEB?
  10. 10. FRAMEWORKS! MUITOS FRAMEWORKS!!!
  11. 11. TIPOS DE FRAMEWORKS Micro frameworks Full-stack frameworks
  12. 12. Micro framework • Se concentra no essencial • Foco em simplicidade e extensibilidade • MVC • HTTP Framework
  13. 13. Micro framework
  14. 14. Full-stack frameworks • Tudo que você precisa está ali! • MVC
  15. 15. Full-stack frameworks
  16. 16. QUE FRAMEWORK É ESSE?
  17. 17. • Open source - https://github.com/web2py/web2py • Database-driven web-applications • Rápido, extensível e seguro! • Pythonico!
  18. 18. • Criado em 2007 • Ferramenta de ensino a programação web • Velocidade, facilidade e segurança, retrocompatibilidade • "Desenvolver para web deveria ser fácil!" Massimo DiPierro - criador do web2py. Doutor Professor de Ciência da Computação em Alta Performance e Computação Científica na Universidade de DePaul, em Chicago, Illinois.
  19. 19. • O projeto cresceu e ganhou colaboradores! • E prêmios!
  20. 20. • Model-View-Controller (MVC) • Separação de interesses • Não há incorporação de código em páginas HTML. • HTML é gerado programaticamente CONTROLLER MODEL VIEW NOTIFY UPDATE UPDATEUSER ACTION
  21. 21. • Segurança • 10 maiores problemas de segurança • Cross Site Scripting (XSS) • SQL Injection The Open Web Application Security Project (OWASP)
  22. 22. O QUE HÁ NA CAIXA?
  23. 23. Python Interpreter Apache, Nginx, Lighttpd, etc. Rocket web server core libraries: request, response, session, cache, helpers, template, forms, i18n, DAL, etc. Applications welcome MVC appadmin admin MVC appadmin examples MVC appadmin myapp MVC appadmin model controllers views modules languages databases static files …
  24. 24. E COMO INSTALAR ISSO?
  25. 25. E SEM CONFIGURAÇÃO!
  26. 26. LINUX MAC OS WINDOWS
  27. 27. WELCOME APP
  28. 28. ADMIN LOGIN
  29. 29. PAINEL ADMINISTRATIVO
  30. 30. WELCOME APP
  31. 31. WELCOME APP
  32. 32. WELCOME APP
  33. 33. MODELS
  34. 34. MODELS - DAL • DAL - Database Abstraction Layer • Mapeia objetos Python em objetos do banco • Queries • Tabelas • Registros • Gera SQL dinamicamente em tempo real +10
  35. 35. MODELS - DAL db = DAL('sqlite://storage.db') db.define_table('mytable', Field('myfield')) rows = db(db.mytable.myfield != None).select() DAL Table Row Ah, migrations são automáticos! =D
  36. 36. MODELS ++ • Lazy tables • Validadores • Banco de dados legados • Transações distribuídas • Campos virtuais • Exportação e importação de dados (CSV, HTML e XML) • Cache de selects • Herança de tabelas • Log automático • E muito mais!
  37. 37. VIEWS
  38. 38. VIEWS • Código Python embarcado • Sintaxe Python modificada • Não precisa identar • pass é utilizada como delimitador de bloco • Delimitadores: {{ … }}
  39. 39. VIEWS <ul> {{for item in items:}} <li>{{=item}}</li> {{pass}} </ul> <ul> <li>a</li> <li>b</li> <li>c</li> </ul> tems' é uma lista passada por um controller
  40. 40. VIEWS <ul> {{while k > 0:}} <li>{{=k}}{{k = k - 1}}</li> {{pass}} </ul> <ul> <li>3</li> <li>2</li> <li>1</li> </ul> ara ‘k’ igual a 3, passado por um controller
  41. 41. VIEWS Core Python embarcado HTML gerado
  42. 42. PAGE LAYOUT • Views podem estender ou incluir outras views!
  43. 43. PAGE LAYOUT <html> <body> <div class="sidebar"> {{include}} </div> </body> </html> {{extend 'layout.html'}} <h1>Hello World!!!</h1> <html> <body> <div class="sidebar"> <h1> Hello World!!!</h1> </div> </body> </html>extend
  44. 44. PAGE LAYOUT <html> <body> <div class="sidebar"> </div> {{include footer.html}} </body> </html> <div class="footer">My Footer</div> <html> <body> <div class="sidebar"> </div> <div class=“footer"> My Footer </div> </body> </html>include
  45. 45. VIEWS ++ • Blocks • Functions • Helpers • Geradores de HTML • Server-side DOM
  46. 46. CORE Controllers
  47. 47. CORE Requests, responses, sessions, cache, views, DAL, i18n, cookies, modulos, dispatching, dentre outros http://hostname/application/controller/function/args?vars localhost myapp default index
  48. 48. AUTH
  49. 49. AUTH • Controle de acesso de usuários • Registro • Login • Logout • Mudança de senha • Email de confirmação
  50. 50. AUTH • API’s embutidas • Gmail • LinkedIn • Facebook • Dropbox
  51. 51. AUTH • Anotações • @auth.requires_login() • @auth.requires_members hip(‘nome_grupo') @auth.requires_login() def list_users(): … @auth.requires_membership('admin def list_users(): …
  52. 52. O QUE EU NÃO MENCIONEI
  53. 53. O QUE EU NÃO MENCIONEI Forms e validadores Email e SMSServiços jQuery e Ajax Components e plugins Receitas de deploy Memcache Redis Twitter API Paypal API SQLDesigner Ticket Errors
  54. 54. CASES
  55. 55. WEB2CANVAS http://web2canvas.x4start.com/
  56. 56. GLOBALEAKS https://globaleaks.org/
  57. 57. FLUXO DE CAIXA http://fluxodecaixa.com.br/
  58. 58. ONDE APRENDER? Cursos, livros, tutoriais
  59. 59. ONDE APRENDER? Livro do web2py web2pyslices web2py cookbook killer-web-development.com web2py-users web2py-users-brazil Vimeo
  60. 60. ONDE APRENDER? “USE THE SOURCE, LUKE"
  61. 61. ANTES QUE EU ESQUEÇA: • O Web2py é ótimo! • Uma incrível opção para aprender desenvolvimento web! • Uma fantástica escolha para seu próximo projeto pessoal ou empresarial! • Mas…
  62. 62. PERGUNTAS ? matheus.mcas@gmail.com @matheuscas https://github.com/matheuscas mohammeds.com.br /matheuscas

×