Python na Web - Apresentando o web2py
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Python na Web - Apresentando o web2py

  • 273 views
Uploaded 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 à......

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.

More in: Software
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
273
On Slideshare
265
From Embeds
8
Number of Embeds
2

Actions

Shares
Downloads
5
Comments
0
Likes
1

Embeds 8

http://www.slideee.com 7
http://www.linkedin.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. PYTHON NA WEB APRESENTANDO O WEB2PY
  • 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. ESTUDA O QUE?
  • 4. TRABALHA EM QUE?
  • 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. E TAMBÉM ME DIVIRTO, NÉ?
  • 7. EM TUDO NA MINHA VIDA EU PROGRAMO! E EM TODAS ELAS EU USO OU JÁ USEI PYTHON
  • 8. O QUE EU VOU FALAR? • Como usar Python na web • Frameworks • Web2py
  • 9. COMO USAR PYTHON NA WEB?
  • 10. FRAMEWORKS! MUITOS FRAMEWORKS!!!
  • 11. TIPOS DE FRAMEWORKS Micro frameworks Full-stack frameworks
  • 12. Micro framework • Se concentra no essencial • Foco em simplicidade e extensibilidade • MVC • HTTP Framework
  • 13. Micro framework
  • 14. Full-stack frameworks • Tudo que você precisa está ali! • MVC
  • 15. Full-stack frameworks
  • 16. QUE FRAMEWORK É ESSE?
  • 17. • Open source - https://github.com/web2py/web2py • Database-driven web-applications • Rápido, extensível e seguro! • Pythonico!
  • 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. • O projeto cresceu e ganhou colaboradores! • E prêmios!
  • 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. • Segurança • 10 maiores problemas de segurança • Cross Site Scripting (XSS) • SQL Injection The Open Web Application Security Project (OWASP)
  • 22. O QUE HÁ NA CAIXA?
  • 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. E COMO INSTALAR ISSO?
  • 25. E SEM CONFIGURAÇÃO!
  • 26. LINUX MAC OS WINDOWS
  • 27. WELCOME APP
  • 28. ADMIN LOGIN
  • 29. PAINEL ADMINISTRATIVO
  • 30. WELCOME APP
  • 31. WELCOME APP
  • 32. WELCOME APP
  • 33. MODELS
  • 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. 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. 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. VIEWS
  • 38. VIEWS • Código Python embarcado • Sintaxe Python modificada • Não precisa identar • pass é utilizada como delimitador de bloco • Delimitadores: {{ … }}
  • 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. 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. VIEWS Core Python embarcado HTML gerado
  • 42. PAGE LAYOUT • Views podem estender ou incluir outras views!
  • 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. 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. VIEWS ++ • Blocks • Functions • Helpers • Geradores de HTML • Server-side DOM
  • 46. CORE Controllers
  • 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. AUTH
  • 49. AUTH • Controle de acesso de usuários • Registro • Login • Logout • Mudança de senha • Email de confirmação
  • 50. AUTH • API’s embutidas • Gmail • LinkedIn • Facebook • Dropbox
  • 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. O QUE EU NÃO MENCIONEI
  • 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. CASES
  • 55. WEB2CANVAS http://web2canvas.x4start.com/
  • 56. GLOBALEAKS https://globaleaks.org/
  • 57. FLUXO DE CAIXA http://fluxodecaixa.com.br/
  • 58. ONDE APRENDER? Cursos, livros, tutoriais
  • 59. ONDE APRENDER? Livro do web2py web2pyslices web2py cookbook killer-web-development.com web2py-users web2py-users-brazil Vimeo
  • 60. ONDE APRENDER? “USE THE SOURCE, LUKE"
  • 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. PERGUNTAS ? matheus.mcas@gmail.com @matheuscas https://github.com/matheuscas mohammeds.com.br /matheuscas