Desenvolvimento Web em Python — Parte 4 da série Herez
Visão geral: esta é a quarta publicação da série Herez sobre bibliotecas Python. Aqui detalhamos frameworks e microframeworks para desenvolvimento web: Django, Flask, Bottle, CherryPy, Pyramid, Web2py, TurboGears, CubicWeb, Dash e Falcon. Cada seção traz descrição, motivos para usar, instalação e exemplos práticos aplicados em projetos reais da Herez. Exemplos completos estão disponíveis nos repositórios GitHub e GitLab da Herez.
Publicado por Herez em
Como usar este post
Use este guia para comparar frameworks, escolher a ferramenta certa para seu projeto e copiar trechos de código que aceleram a prototipagem. Todos os exemplos foram aplicados em projetos reais da Herez e os repositórios contêm aplicações completas, scripts de deploy e testes.
Resumo rápido
| Framework | Tipo | Quando usar |
|---|---|---|
| Django | Full stack | Aplicações completas com admin e ORM |
| Flask | Microframework | APIs e serviços leves |
| Bottle | Microframework | APIs pequenas e protótipos |
| CherryPy | Microframework | Serviços embutidos e servidores simples |
| Pyramid | Flexível | Projetos que crescem em complexidade |
| Web2py | Full stack | Aplicações com foco em produtividade |
| TurboGears | Full stack | Aplicações modulares e escaláveis |
| CubicWeb | Framework semântico | Aplicações baseadas em dados e ontologias |
| Dash | Visualização | Dashboards interativos e data apps |
| Falcon | Microframework | APIs de alta performance |
Frameworks detalhados com exemplos reais
Django
O que é: framework full stack com ORM, sistema de templates, painel administrativo e convenções que aceleram desenvolvimento de aplicações completas.
Por que usar: produtividade alta, segurança integrada e ecossistema maduro para autenticação, internacionalização e deploy.
# Instalação
pip install django
# views.py
from django.shortcuts import render
from .models import Article
def index(request):
articles = Article.objects.order_by('-published')[:10]
return render(request, 'blog/index.html', {'articles': articles})
Contexto Herez: usado em portal de conteúdo com CMS customizado; o admin do Django foi estendido para workflows editoriais. Código e scripts de deploy estão nos repositórios Herez.
Flask
O que é: microframework minimalista que fornece roteamento, templates e extensões para adicionar funcionalidades conforme necessário.
# Instalação
pip install flask
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route('/api/predict', methods=['POST'])
def predict():
data = request.json
result = model.predict(data['features'])
return jsonify({'prediction': result.tolist()})
Contexto Herez: microserviço de inferência para modelos de ML; containerizado e integrado ao gateway de API da Herez.
Bottle
O que é: microframework de um único arquivo, ideal para protótipos, demos e APIs muito pequenas.
# Instalação
pip install bottle
from bottle import route, run, request, response
@route('/hello')
def hello():
return "Hello from Bottle"
run(host='0.0.0.0', port=8080)
Contexto Herez: usado em protótipos rápidos e ferramentas internas; exemplos de scripts estão nos repositórios Herez.
CherryPy
O que é: framework minimalista que inclui servidor HTTP embutido, ideal para serviços autônomos e aplicações que precisam de controle fino do servidor.
# Instalação
pip install cherrypy
import cherrypy
class Hello:
@cherrypy.expose
def index(self):
return "Hello CherryPy"
cherrypy.quickstart(Hello())
Contexto Herez: serviço interno de processamento de arquivos com servidor embutido; configuração de threads e logging ajustada para produção.
Pyramid
O que é: framework flexível que permite começar pequeno e crescer; suporta diferentes estilos de roteamento e autenticação.
# Instalação
pip install pyramid
from pyramid.config import Configurator
from pyramid.response import Response
def hello_world(request):
return Response('Hello Pyramid')
if __name__ == '__main__':
with Configurator() as config:
config.add_route('hello', '/')
config.add_view(hello_world, route_name='hello')
app = config.make_wsgi_app()
Contexto Herez: usado em projetos que exigem migração incremental de monólitos para serviços modulares; exemplos de configuração e testes estão nos repositórios Herez.
Web2py
O que é: framework full stack com foco em produtividade e segurança, inclui IDE web e ferramentas integradas.
# Instalação
pip install web2py
# controller default.py
def index():
rows = db(db.article).select(orderby=~db.article.created_on)
return dict(rows=rows)
Contexto Herez: protótipos de aplicações internas e ferramentas administrativas; exemplos de modelos e controllers estão nos repositórios Herez.
TurboGears
O que é: framework full stack modular que combina componentes para criar aplicações escaláveis e organizadas.
# Instalação
pip install TurboGears2
# controller example
from tg import expose, TGController
class RootController(TGController):
@expose('json')
def index(self):
return {'status': 'ok'}
Contexto Herez: aplicações modulares com camadas separadas de serviço e apresentação; padrões de projeto e testes disponíveis nos repositórios Herez.
CubicWeb
O que é: framework orientado a dados e semântico, ideal para aplicações que modelam domínios complexos e ontologias.
# Instalação
pip install cubicweb
# esquema e views são definidos por componentes; exemplo simplificado
# define entidades e relações, depois gere views automaticamente
Contexto Herez: usado em projetos de catalogação de dados e repositórios semânticos; modelos e scripts de ingestão estão nos repositórios Herez.
Dash
O que é: framework para construir dashboards interativos e aplicações de visualização de dados com componentes reativos.
# Instalação
pip install dash
import dash
from dash import html, dcc
import plotly.express as px
app = dash.Dash(__name__)
df = px.data.iris()
fig = px.scatter(df, x='sepal_width', y='sepal_length', color='species')
app.layout = html.Div([
dcc.Graph(figure=fig)
])
if __name__ == '__main__':
app.run_server(debug=True)
Contexto Herez: dashboards de monitoramento de modelos e painéis de métricas; aplicações com autenticação e deploy em containers estão nos repositórios Herez.
Falcon
O que é: microframework focado em performance para construir APIs REST de alta velocidade.
# Instalação
pip install falcon
import falcon
import json
class Resource:
def on_get(self, req, resp):
resp.media = {'status': 'ok'}
app = falcon.App()
app.add_route('/health', Resource())
Contexto Herez: APIs de baixa latência para serviços de autenticação e ingestão; exemplos de integração com gateways e testes de carga estão nos repositórios Herez.
Comparação prática
| Critério | Django | Flask | Pyramid | Dash |
|---|---|---|---|---|
| Foco | Full stack | Microframework | Flexível | Dashboards |
| Curva de aprendizado | Média | Baixa | Média | Baixa |
| Ideal para | Portais e aplicações completas | APIs e microserviços | Projetos que crescem | Visualização e data apps |
| Escalabilidade | Alta | Alta com arquitetura adequada | Alta | Média |
Boas práticas Herez para desenvolvimento web
- Escolha pelo escopo: use Django para aplicações completas; Flask ou Falcon para APIs; Dash para dashboards interativos.
- Arquitetura: separe apresentação, lógica e persistência; prefira microserviços quando precisar escalar independentemente.
- Segurança: valide entradas, use HTTPS, proteja endpoints e gerencie segredos com cofre de segredos.
- CI/CD: automatize testes, linting e deploy; inclua testes de integração e smoke tests para cada release.
- Repositórios Herez: exemplos completos, templates de projeto e pipelines de CI usados em projetos reais da Herez estão disponíveis nos repositórios GitHub e GitLab da Herez.
Próximo post da série
No próximo artigo cobriremos bibliotecas Python para Web Scraping com exemplos práticos, estratégias de coleta ética e pipelines para transformar dados brutos em insights.

