- Programação

Como Funciona o ORM no Python com SQLAlchemy

O ORM (Object-Relational Mapping) no Python, especialmente com o SQLAlchemy, é uma técnica essencial para desenvolvedores que desejam interagir com bancos de dados de maneira eficiente e intuitiva. O SQLAlchemy oferece uma interface poderosa para converter dados entre o banco de dados relacional e os objetos Python, facilitando a manipulação dos dados sem a necessidade de escrever SQL diretamente.

O Que é ORM?

ORM é uma técnica que permite mapear objetos de programação (como classes e instâncias em Python) para tabelas e registros em um banco de dados relacional. Isso permite que você trabalhe com dados como objetos, mantendo a consistência do modelo de dados do banco sem precisar escrever comandos SQL complexos.

Instalando o SQLAlchemy

Para começar a usar o SQLAlchemy, você precisa instalá-lo. Isso pode ser feito facilmente com o pip:

pip install sqlalchemy

Criando a Conexão com o Banco de Dados

O SQLAlchemy exige a criação de uma conexão com o banco de dados. Você pode configurar o banco de dados no momento da criação do engine. Aqui está um exemplo simples para se conectar a um banco de dados SQLite:

from sqlalchemy import create_engine

engine = create_engine('sqlite:///meubanco.db')

Definindo o Modelo de Dados

O próximo passo é definir o modelo de dados, que será mapeado para uma tabela no banco de dados. Para isso, utilizamos as classes em Python, que são mapeadas para as tabelas do banco. Aqui está um exemplo de um modelo de usuário:

from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Usuario(Base):
    __tablename__ = 'usuarios'

    id = Column(Integer, primary_key=True)
    nome = Column(String)
    email = Column(String)

    def __repr__(self):
        return f"<Usuario(id={self.id}, nome={self.nome}, email={self.email})>"

Criando e Atualizando o Banco de Dados

Depois de definir o modelo, você pode criar a tabela correspondente no banco de dados usando o método create_all do SQLAlchemy:

Base.metadata.create_all(engine)

Realizando Operações no Banco de Dados

Após a criação do banco de dados, você pode usar o SQLAlchemy para realizar operações CRUD (Create, Read, Update, Delete). Aqui está um exemplo de como adicionar um novo usuário:

from sqlalchemy.orm import sessionmaker

Session = sessionmaker(bind=engine)
session = Session()

# Criando um novo usuário
novo_usuario = Usuario(nome='João', email='joao@exemplo.com')
session.add(novo_usuario)
session.commit()

Consultando Dados

Para realizar consultas, você pode usar a API de consultas do SQLAlchemy. Aqui está um exemplo de como buscar todos os usuários no banco:

usuarios = session.query(Usuario).all()
for usuario in usuarios:
    print(usuario)

Conclusão

O SQLAlchemy facilita a interação com bancos de dados relacionais no Python, permitindo que você trabalhe com dados de forma orientada a objetos, sem a necessidade de escrever SQL manualmente. Com o ORM, você pode se concentrar na lógica da aplicação, enquanto o SQLAlchemy cuida do mapeamento e das operações no banco de dados.

Se você deseja aprender mais sobre Python e SQLAlchemy, continue acompanhando o blog Demo Rodável para mais artigos e tutoriais.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *