Até este ponto da trilha, você aprendeu os fundamentos da linguagem Python, estruturas de dados, programação orientada a objetos, gerenciamento de dependências e diversos recursos avançados da linguagem. Agora é o momento de utilizar esse conhecimento para desenvolver aplicações reais.
Neste módulo estudaremos os principais frameworks do ecossistema Python, utilizados para criação de aplicações web, APIs REST, microsserviços, sistemas corporativos e aplicações em tempo real.
Um framework fornece uma estrutura pronta para o desenvolvimento, oferecendo componentes reutilizáveis, organização do projeto e diversas funcionalidades que aceleram a construção de aplicações profissionais.
Durante este módulo serão explorados frameworks com diferentes filosofias e modelos de execução, permitindo compreender quando cada tecnologia deve ser utilizada e quais problemas ela resolve.
Ao concluir este módulo, você será capaz de:
- compreender o papel dos frameworks no desenvolvimento de software;
- desenvolver aplicações web completas;
- construir APIs REST profissionais;
- trabalhar com aplicações síncronas e assíncronas;
- compreender arquiteturas WSGI e ASGI;
- organizar projetos seguindo boas práticas;
- escolher o framework mais adequado para diferentes cenários;
- compreender as vantagens e limitações das principais soluções do ecossistema Python.
Um framework é um conjunto de bibliotecas, padrões e ferramentas que fornece uma estrutura para o desenvolvimento de aplicações.
Em vez de desenvolver toda a infraestrutura do projeto manualmente, o framework disponibiliza componentes prontos para tarefas como:
- roteamento;
- comunicação HTTP;
- autenticação;
- acesso ao banco de dados;
- renderização de páginas;
- serialização de dados;
- gerenciamento de sessões;
- validação de informações;
- tratamento de erros.
Isso permite que o desenvolvedor concentre seus esforços na lógica de negócio da aplicação.
Embora seja possível desenvolver aplicações utilizando apenas a biblioteca padrão do Python, essa abordagem exige implementar manualmente diversas funcionalidades já consolidadas.
Os frameworks oferecem:
- maior produtividade;
- padronização da arquitetura;
- reutilização de código;
- melhor organização dos projetos;
- integração com bibliotecas externas;
- maior segurança;
- facilidade de manutenção.
Por esse motivo, praticamente todo desenvolvimento web profissional em Python utiliza algum framework.
Este módulo está dividido em três grandes submódulos.
Neste submódulo serão estudados frameworks que tradicionalmente seguem o modelo de execução síncrono.
Conteúdos:
- Pyramid
- Plotly Dash
Durante esse estudo você aprenderá sobre:
- arquitetura baseada em requisições síncronas;
- desenvolvimento de aplicações web;
- dashboards interativos;
- organização de projetos;
- componentes visuais;
- aplicações analíticas.
Essas tecnologias são amplamente utilizadas em aplicações tradicionais e sistemas de visualização de dados.
Neste submódulo serão estudadas bibliotecas e frameworks voltados para programação assíncrona.
Conteúdos:
- Tornado
- Sanic
- Aiohttp
- Gevent
Serão apresentados conceitos como:
- Event Loop;
- programação assíncrona;
asynceawait;- WebSockets;
- concorrência;
- cliente HTTP assíncrono;
- Greenlets;
- Monkey Patching.
Essas tecnologias são indicadas para aplicações que precisam lidar com milhares de conexões simultaneamente.
Neste submódulo estudaremos frameworks que podem ser utilizados em diferentes modelos de desenvolvimento ou que representam as principais abordagens do ecossistema web Python.
Conteúdos:
- Flask
- FastAPI
- Django
Durante esse estudo serão abordados:
- desenvolvimento de APIs REST;
- aplicações web completas;
- autenticação;
- ORM;
- templates;
- documentação automática;
- validação de dados;
- arquitetura de projetos.
Esses frameworks representam algumas das ferramentas mais utilizadas pela indústria atualmente.
| Tecnologia | Principal Aplicação | Modelo |
|---|---|---|
| Pyramid | Aplicações web flexíveis | Síncrono |
| Plotly Dash | Dashboards e visualização de dados | Síncrono |
| Tornado | Aplicações em tempo real | Assíncrono |
| Sanic | APIs REST de alto desempenho | Assíncrono |
| Aiohttp | Cliente HTTP e servidor web | Assíncrono |
| Gevent | Concorrência cooperativa | Assíncrono |
| FastAPI | APIs REST modernas | Assíncrono (ASGI) |
| Flask | Aplicações web leves e APIs | Predominantemente síncrono (WSGI) |
| Django | Aplicações web completas | Predominantemente síncrono (WSGI, com suporte ASGI) |
Ao finalizar este módulo, você terá desenvolvido competências para:
- construir aplicações web profissionais;
- desenvolver APIs REST escaláveis;
- utilizar frameworks modernos do ecossistema Python;
- compreender arquiteturas síncronas e assíncronas;
- estruturar projetos seguindo boas práticas;
- criar dashboards interativos;
- consumir e disponibilizar serviços HTTP;
- desenvolver microsserviços;
- trabalhar com aplicações de alta concorrência.
Os conhecimentos deste módulo são utilizados em praticamente todas as áreas do desenvolvimento com Python.
- Desenvolvimento Web
- APIs REST
- Microsserviços
- Ciência de Dados
- Engenharia de Dados
- Inteligência Artificial
- Computação em Nuvem
A escolha depende dos requisitos do projeto.
De forma geral:
- Django é indicado para aplicações completas que exigem muitos recursos integrados.
- Flask é ideal para projetos menores, APIs simples e aplicações que necessitam de maior flexibilidade.
- FastAPI é recomendado para APIs modernas, microsserviços e aplicações com alta demanda por desempenho.
- Sanic, Tornado e Aiohttp são excelentes opções para aplicações altamente concorrentes e comunicação assíncrona.
- Plotly Dash é especializado em dashboards e visualização de dados.
- Pyramid oferece uma arquitetura flexível para projetos que exigem maior liberdade de configuração.
- Gevent continua relevante principalmente em aplicações legadas e cenários específicos de concorrência cooperativa.
Não existe um framework universalmente melhor; a escolha deve considerar fatores como tipo de aplicação, requisitos de desempenho, equipe de desenvolvimento, ecossistema disponível e facilidade de manutenção.
Para aproveitar melhor este módulo, é recomendado já dominar:
- sintaxe da linguagem Python;
- estruturas de dados;
- funções e módulos;
- Programação Orientada a Objetos;
- gerenciamento de pacotes;
- exceções;
- compreensão de HTTP e APIs;
- noções de programação assíncrona (desejável).
Após concluir este módulo, você estará preparado para aprofundar seus conhecimentos em áreas como desenvolvimento de APIs avançadas, autenticação e autorização, ORMs, bancos de dados, testes automatizados, Docker, Kubernetes, computação em nuvem, arquitetura de microsserviços, mensageria, observabilidade e práticas de DevOps.
O módulo Frameworks marca a transição do estudo da linguagem para o desenvolvimento de aplicações reais. Ao longo dele, você conhecerá os principais frameworks do ecossistema Python, explorando diferentes modelos de desenvolvimento — síncrono, assíncrono e híbrido — e aprendendo quando utilizar cada tecnologia. Com o estudo de Pyramid, Plotly Dash, Tornado, Sanic, Aiohttp, Gevent, FastAPI, Flask e Django, você desenvolverá uma visão ampla do desenvolvimento web moderno em Python e estará preparado para escolher a ferramenta mais adequada para cada tipo de projeto, desde dashboards analíticos até APIs de alto desempenho e sistemas corporativos completos.