Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python para web 101

Python para web 101

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

Caio Carrara

February 05, 2020
Tweet

More Decks by Caio Carrara

Other Decks in Programming

Transcript

  1. 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
  2. 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
  3. 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
  4. 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.
  5. A Web - Python no cliente/servidor Req - HTTP Resposta

    - HTTP Requisição - HTTP Res - HTTP 10
  6. 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
  7. A Web - Python no servidor Req - HTTP Resposta

    - HTTP Requisição - HTTP Res - HTTP 20
  8. A Web - Python no cliente Req - HTTP Resposta

    - HTTP Requisição - HTTP Res - HTTP 27
  9. 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
  10. 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
  11. Pyramid • Comece pequeno, termine grande • Focado em modularização

    • Persistência agnóstica • https://trypyramid.com/ 43 https://github.com/pypa/warehouse
  12. 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
  13. 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