0Pricing
Python Academy · Lección

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 Session realiza el seguimiento de su unidad de trabajo
  • add() prepara los cambios y commit() los persiste
  • select() + scalars() lee objetos; where() filtra
  • session.get() obtiene objetos por su clave primaria; las modificaciones y delete() 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

  1. SQLAlchemy Core frente a ORM
  2. Definición de modelos
  3. Consultas con Session
  4. Relaciones y uniones
← Volver a Python Academy