Peewee ORM: leve e eficiente para Python

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução

Trabalhar com banco de dados é essencial em qualquer aplicação moderna. Para Python, existem diversas bibliotecas ORM que facilitam a interação com bancos SQL. Uma das mais simples e compactas é o Peewee. Ele é ideal para projetos pequenos, scripts e até microsserviços.

O Peewee ORM oferece tudo o que você precisa para definir modelos, executar consultas, trabalhar com transações e integrar com frameworks web — tudo isso com uma curva de aprendizado suave e fácil implementação.

Como funciona uma ORM e onde o Peewee se encaixa

O que é uma ORM

ORM (Object-Relational Mapping) é uma tecnologia que permite trabalhar com bancos de dados usando objetos da linguagem de programação. Em vez de escrever SQL puro, você cria e manipula classes Python, e a ORM converte tudo em SQL automaticamente.

A ORM fornece uma camada de abstração sobre o SQL, tornando o código mais legível e menos propenso a erros. Os principais benefícios de usar uma ORM incluem:

  • Geração automática de consultas SQL
  • Proteção contra injeção de SQL
  • Portabilidade entre diferentes bancos de dados
  • Facilidade ao trabalhar com objetos Python

Quando escolher o Peewee

O Peewee é uma excelente escolha nos seguintes cenários:

  • Quando você precisa de uma ferramenta simples e leve
  • Para projetos pequenos ou experimentais
  • Quando a velocidade de desenvolvimento é prioridade, sem configurações complexas
  • Para prototipagem e aplicações web de pequeno porte
  • Para aplicações desktop com banco de dados local

Instalação e configuração básica

Instalando o Peewee

Você pode instalar o Peewee via pip:

pip install peewee

Para trabalhar com diferentes bancos de dados, você precisará de pacotes adicionais:

# Para PostgreSQL
pip install psycopg2-binary

# Para MySQL
pip install PyMySQL

# Para SQLite (já incluso no Python)
# nenhum pacote extra é necessário

Conectando ao banco de dados

O Peewee suporta vários tipos de banco de dados:

from peewee import SqliteDatabase, PostgresqlDatabase, MySQLDatabase

# SQLite
db = SqliteDatabase('meu_banco.db')

# PostgreSQL
db = PostgresqlDatabase('meudb', user='usuario', password='senha', host='localhost', port=5432)

# MySQL
db = MySQLDatabase('meudb', user='usuario', password='senha', host='localhost', port=3306)

Criando modelos de dados

Modelo básico

from peewee import Model, CharField, DateField, IntegerField, TextField

class BaseModel(Model):
    class Meta:
        database = db

class Autor(BaseModel):
    nome = CharField(max_length=100)
    data_nascimento = DateField()
    biografia = TextField(null=True)
    
class Livro(BaseModel):
    titulo = CharField(max_length=200)
    isbn = CharField(max_length=13, unique=True)
    paginas = IntegerField()
    ano_publicacao = IntegerField()
    autor = ForeignKeyField(Autor, backref='livros')

Criando as tabelas

db.connect()
db.create_tables([Autor, Livro])

Tipos de campos no Peewee

Principais tipos de campo

Recommendations

Tipo de campo Descrição Parâmetros
CharField String com limite de caracteres max_length, unique, null
TextField Texto sem limite de tamanho null
IntegerField Número inteiro null, unique
FloatField Número de ponto flutuante null, unique
BooleanField Valor booleano null, default
DateField Data null, default
DateTimeField Data e hora