Para um projeto simples como este, seria mais didático usar um 'peewee' como ORM, por mais que SQLAlchemy seja o mais usado para python, ele é um monstro haha.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Para um projeto simples como este, seria mais didático usar um 'peewee' como ORM, por mais que SQLAlchemy seja o mais usado para python, ele é um monstro haha.
Olá, Caio. Como vai?
Sua sugestão é excelente e faz todo sentido do ponto de vista didático! O Peewee é uma ferramenta fantástica e muitas vezes subestimada quando estamos ensinando ou aprendendo sobre persistência de dados em Python.
Você tocou em um ponto cirúrgico para quem está começando: o SQLAlchemy é extremamente poderoso e o padrão de mercado para grandes sistemas, mas ele traz consigo uma carga conceitual muito pesada (como a separação entre Engine, Connection, MetaData e Session). Para quem quer apenas entender o conceito de transformar uma classe Python em uma tabela no banco de dados, ele pode parecer um "monstro" mesmo e desviar o foco do aprendizado básico.
O Peewee brilha justamente nessa simplicidade. Ele adota o padrão Active Record (onde o próprio modelo resolve as operações de salvamento e busca), tornando a sintaxe muito mais expressiva e direta para projetos menores.
Para ilustrar o que você falou sobre a diferença de complexidade, veja como é muito mais limpo criar um modelo e fazer uma consulta simples com o Peewee:
from peewee import SqliteDatabase, Model, CharField, IntegerField
# 1. Configuração direta do banco
db = SqliteDatabase('usuarios.db')
# 2. Definição do modelo simples e intuitiva
class Usuario(Model):
nome = CharField()
idade = IntegerField()
class Meta:
database = db
# 3. Consulta direta e legível
db.connect()
usuarios_maiores = Usuario.select().where(Usuario.idade >= 18)
No SQLAlchemy, esse mesmo processo exige a criação de uma classe base declarativa, configuração do engine, criação de uma fábrica de sessões (sessionmaker) e o uso de uma sintaxe de consulta que pode confundir iniciantes.
Levar o Peewee como alternativa em cursos introdutórios ou desafios de menor escopo ajuda o estudante a focar na lógica do ORM (mapeamento objeto-relacional) em vez de gastar energia lutando contra as configurações complexas da biblioteca.
Agradeço demais por compartilhar essa visão aqui no fórum. Esse tipo de debate enriquece muito a comunidade e abre os olhos de outros alunos para ferramentas mais leves e produtivas!
Espero que possa ter lhe ajudado!