Consultas con Session
Lea y filtre datos
Consultas con Session es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.
La Session
El ORM realiza todo su trabajo a través de una Session. Esta administra una unidad de trabajo: realiza el seguimiento de los objetos nuevos, modificados y eliminados, y se comunica con la base de datos.
from sqlalchemy import create_engine
from sqlalchemy.orm import Session
engine = create_engine('sqlite:///:memory:')
with Session(engine) as session:
print('Session open:', session)Agregar objetos
session.add() prepara un objeto nuevo. Nada llega a la base de datos hasta que se ejecuta commit().
from sqlalchemy.orm import Session
# session.add(user) stages it
# session.commit() writes it
print('add stages, commit saves')Confirmar cambios
session.commit() envía los cambios pendientes y confirma la transacción, haciéndolos permanentes.
# with Session(engine) as session:
# session.add(User(name='Alice'))
# session.commit()
print('commit persists the work')Consultar con select()
SQLAlchemy moderno lee datos con select(), que se ejecuta a través de la sesión. scalars() devuelve instancias de los modelos.
from sqlalchemy import select
# stmt = select(User)
# users = session.scalars(stmt).all()
print('select(User) then scalars().all()')Obtener todas las filas
session.scalars(select(User)).all() devuelve una lista con todos los objetos User de la tabla.
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')Filtrar con where()
Agregue una cláusula where() para filtrar. Compare una columna mapeada mediante un operador normal de Python.
from sqlalchemy import select
# stmt = select(User).where(User.age > 28)
# adults = session.scalars(stmt).all()
print('where(User.age > 28) filters rows')Obtener un objeto
session.scalars(stmt).first() devuelve la primera coincidencia o None. one() espera exactamente una fila y genera una excepción en caso contrario.
from sqlalchemy import select
# stmt = select(User).where(User.name == 'Alice')
# user = session.scalars(stmt).first()
print('first() = first match or None')Buscar por clave primaria
session.get(User, 1) es la forma más rápida de obtener un solo objeto mediante su clave primaria.
# user = session.get(User, 1)
# print(user.name)
print('session.get(Model, pk) fetches by id')Ordenar resultados
Encadene order_by() para ordenar. Use .desc() en una columna para ordenar de forma descendente.
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')Actualizar un objeto
Cambie un atributo de un objeto cargado y, después, ejecute commit(). La sesión detecta el cambio y emite una instrucción UPDATE.
# user = session.get(User, 1)
# user.name = 'Alicia'
# session.commit() # auto UPDATE
print('Edit attribute, then commit')Eliminar un objeto
session.delete(obj) marca un objeto para eliminarlo. La instrucción DELETE se ejecuta en la siguiente confirmación.
# user = session.get(User, 1)
# session.delete(user)
# session.commit() # row removed
print('delete(obj) then commit removes the row')Comprobación rápida
Ponga a prueba sus conocimientos sobre la sesión.
Recapitulación
Aprendió a leer y modificar datos mediante la Session.
- La
Sessionrealiza el seguimiento de su unidad de trabajo add()prepara los cambios ycommit()los persisteselect()+scalars()lee objetos;where()filtrasession.get()obtiene objetos por su clave primaria; las modificaciones ydelete()se aplican al confirmar
Preguntas frecuentes
¿La lección «Consultas con Session» es gratis?
Sí — el texto completo de «Consultas con Session» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Consultas con Session»?
Lea y filtre datos Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Python Academy?
No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Consultas con Session»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Python Academy?
Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- SQLAlchemy Core frente a ORM
- Definición de modelos
- Consultas con Session
- Relaciones y uniones