Consultas com a Session
Leia e filtre dados
Consultas com a Session é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.
A sessão
O ORM realiza todo o seu trabalho por meio de uma sessão. Ele gerencia uma unidade de trabalho: acompanha objetos novos, alterados e excluídos e se comunica com o banco de dados.
from sqlalchemy import create_engine
from sqlalchemy.orm import Session
engine = create_engine('sqlite:///:memory:')
with Session(engine) as session:
print('Session open:', session)Adicionando objetos
session.add() prepara um objeto novo. Nada é enviado ao banco de dados até que você use commit().
from sqlalchemy.orm import Session
# session.add(user) stages it
# session.commit() writes it
print('add stages, commit saves')Confirmando alterações
session.commit() envia as alterações pendentes e confirma a transação, tornando-as permanentes.
# with Session(engine) as session:
# session.add(User(name='Alice'))
# session.commit()
print('commit persists the work')Consultando com select()
O SQLAlchemy moderno lê dados com select(), executado por meio da sessão. scalars() retorna instâncias dos modelos.
from sqlalchemy import select
# stmt = select(User)
# users = session.scalars(stmt).all()
print('select(User) then scalars().all()')Obtendo todas as linhas
session.scalars(select(User)).all() retorna uma lista com todos os objetos User da tabela.
from sqlalchemy import select
# all_users = session.scalars(select(User)).all()
# for u in all_users:
# print(u.name)
print('all() returns a list of objects')Filtrando com where()
Adicione uma cláusula where() para filtrar. Compare uma coluna mapeada usando um operador normal do Python.
from sqlalchemy import select
# stmt = select(User).where(User.age > 28)
# adults = session.scalars(stmt).all()
print('where(User.age > 28) filters rows')Obtendo um objeto
session.scalars(stmt).first() retorna a primeira correspondência ou None. one() espera exatamente uma linha e gera um erro caso contrário.
from sqlalchemy import select
# stmt = select(User).where(User.name == 'Alice')
# user = session.scalars(stmt).first()
print('first() = first match or None')Consulta pela chave primária
session.get(User, 1) é a maneira mais rápida de buscar um único objeto pela chave primária.
# user = session.get(User, 1)
# print(user.name)
print('session.get(Model, pk) fetches by id')Ordenando resultados
Encadeie order_by() para ordenar. Use .desc() em uma coluna para obter a ordem decrescente.
from sqlalchemy import select
# stmt = select(User).order_by(User.age.desc())
# sorted_users = session.scalars(stmt).all()
print('order_by(User.age.desc()) sorts results')Atualizando um objeto
Altere um atributo de um objeto carregado e depois use commit(). A sessão detecta a alteração e emite um UPDATE.
# user = session.get(User, 1)
# user.name = 'Alicia'
# session.commit() # auto UPDATE
print('Edit attribute, then commit')Excluindo um objeto
session.delete(obj) marca um objeto para remoção. O DELETE é executado na próxima confirmação.
# user = session.get(User, 1)
# session.delete(user)
# session.commit() # row removed
print('delete(obj) then commit removes the row')Verificação rápida
Teste seus conhecimentos sobre sessões.
Recapitulação
Você aprendeu a ler e alterar dados por meio da sessão.
- A
Sessionacompanha sua unidade de trabalho add()prepara;commit()persisteselect()+scalars()leem objetos;where()filtrasession.get()busca pela chave primária; as edições edelete()são aplicadas na confirmação
Perguntas Frequentes
A aula “Consultas com a Session” é grátis?
Sim — o texto completo de “Consultas com a Session” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.
O que vou aprender em “Consultas com a Session”?
Leia e filtre dados Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Python Academy?
Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Consultas com a Session”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Python Academy?
Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- SQLAlchemy Core versus ORM
- Definição de modelos
- Consultas com a Session
- Relacionamentos e junções