1
resposta

[Sugestão] Sugestão de ORM

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.

1 resposta

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!