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.
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!