Pro Yearly is on sale from $80 to $50! »

Python para web 101

Python para web 101

Uma abordagem introdutória mostrando como Python pode ser utilizado para programação web.

F6d5a605df582ab9ea419ebef9f400b7?s=128

Caio Carrara

February 05, 2020
Tweet

Transcript

  1. Python para web 101 Caio Carrara 1

  2. Caio Carrara • Desenvolvedor de software pro resto da vida

    • Pythonista • Djangonauta • Sênior Engineer @ Loadsmart • www.caiocarrara.com.br ◦ /contato.html ◦ /apresentacoes.html ◦ /blog.html 2
  3. Python a linguagem do povo das pessoas 3

  4. Python - a linguagem das pessoas • 30 anos •

    Código aberto • Interpretada • Multi paradigmas • Tipagem forte e dinâmica • Python Software Foundation • Legibilidade conta (The Zen of Python, by Tim Peters) 4
  5. Python - The Zen of Python Python 3.8.1 (default, Jan

    22 2020, 06:38:00) [GCC 9.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. … Readability counts. Now is better than never. If the implementation is hard to explain, it's a bad idea. … 5
  6. Python - a linguagem das pessoas https://insights.stackoverflow.com/survey/2019 6 > Python

    é a linguagem mais desejada pelo terceiro ano seguido, o que significa que desenvolvedores que ainda não trabalham com Python querem aprender a linguagem.
  7. A Web um ambiente para sistemas distribuídos 7

  8. A Web - cliente e servidor Requisição Resposta 8

  9. A Web - Python no servidor Requisição - HTTP Resposta

    - HTTP 9
  10. A Web - Python no cliente/servidor Req - HTTP Resposta

    - HTTP Requisição - HTTP Res - HTTP 10
  11. A Web - Python no lado do cliente (web browser)

    https://beeware.org/ 11
  12. A Web - Python no lado do cliente (web browser)

    https://beeware.org/ 12
  13. Python para Web baterias inclusas 13

  14. Além de Python, do que mais precisamos para ter uma

    aplicação web? 14
  15. Além de Python, do que mais precisamos para ter uma

    aplicação web? Nada... 15
  16. Python para web (servidor) • Baterias inclusas: ◦ unittest, mock,

    math, statistics, pathlib, sqlite3, csv, json... • http.client / http.server ◦ Bibliotecas de baixo nível para se trabalhar com HTTP ◦ python -m http.server https://docs.python.org/3/library/ 16
  17. Python para web (servidor) https://docs.python.org/3/library/ 17

  18. Python para web (servidor) https://docs.python.org/3/library/ 18

  19. Python para web (servidor) https://docs.python.org/3/library/ 19

  20. A Web - Python no servidor Req - HTTP Resposta

    - HTTP Requisição - HTTP Res - HTTP 20
  21. Python para web (servidor) https://gist.github.com/cacarrara/9423d1d1ebc1c56e70a7b0dbb050fe08 • Baterias inclusas ◦ http.client

    ◦ http.server 21
  22. Python para web (servidor) https://gist.github.com/cacarrara/9423d1d1ebc1c56e70a7b0dbb050fe08 22

  23. Python para web (servidor) https://gist.github.com/cacarrara/9423d1d1ebc1c56e70a7b0dbb050fe08 23

  24. Python para web (servidor) https://gist.github.com/cacarrara/9423d1d1ebc1c56e70a7b0dbb050fe08 24

  25. Python para web (servidor) https://gist.github.com/cacarrara/9423d1d1ebc1c56e70a7b0dbb050fe08 25

  26. Python para web (servidor) 26

  27. A Web - Python no cliente Req - HTTP Resposta

    - HTTP Requisição - HTTP Res - HTTP 27
  28. Python para web (cliente) 28

  29. Python para web (cliente) 29

  30. Python para web (cliente) 30

  31. Python para web (cliente) 31

  32. Python para Web web frameworks 32

  33. Python web frameworks 33

  34. Python web frameworks 34

  35. Python web frameworks • Web Server Gateway Interface WSGI •

    Serialização • Formulários • Templates (HTML) • Object-relational mapping (ORM) • Migrações no banco de dados 35
  36. Python web frameworks 36 HTTP Server WSGI Server Web framework

    Application
  37. Python web frameworks 37 NGINX Gunicorn Django Application

  38. Python para Web Flask 38

  39. Flask • Microframework • Jinja2 • Werkzeug (servidor WSGI) •

    https://flask.palletsprojects.com/en/1.1.x/ 39 https://www.quora.com/What-challenges-has-Pinterest-encountered-with-Flask
  40. Flask - Hello World! 40

  41. Flask - Hello World! 41

  42. Python para Web Pyramid 42

  43. Pyramid • Comece pequeno, termine grande • Focado em modularização

    • Persistência agnóstica • https://trypyramid.com/ 43 https://github.com/pypa/warehouse
  44. Pyramid - Hello World! 44

  45. Pyramid - única view, múltiplos formatos https://github.com/cacarrara/thales 45

  46. Pyramid - única view, múltiplos formatos https://github.com/cacarrara/thales 46

  47. Python para Web Django 47

  48. Django • Framework web Python mais conhecido • Do conceito

    para aplicação o mais rápido possível • Baterias inclusas ◦ Autenticação de usuário, administração de conteúdo, site maps, feed RSS... • ORM nativo • https://www.djangoproject.com/ 48 Scaling Instagram Infrastructure - https://www.youtube.com/watch?v=hnpzNAPiC0E
  49. Django - Quem usa? Scaling Instagram Infrastructure - https://www.youtube.com/watch?v=hnpzNAPiC0E 49

  50. Django - Hello World! 50

  51. Django - Hello World! 51

  52. Django - Hello World! 52

  53. Python para web 101 • Python é uma ótima linguagem

    para desenvolvimento web ◦ Baterias inclusas • Python ainda é mais forte no servidor • Ecossistema forte de bibliotecas e frameworks 53 Conclusões
  54. Obrigado! Perguntas? • www.caiocarrara.com.br ◦ /contato.html ◦ /apresentacoes.html ◦ /blog.html

    54