typestar

Sesiones en Python

Una Session es una unidad de trabajo: agregar, hacer flush, confirmar o revertir.

from sqlalchemy import create_engine
from sqlalchemy.orm import DeclarativeBase, Mapped, Session, mapped_column


class Base(DeclarativeBase):
    pass


class Run(Base):
    __tablename__ = "runs"
    id: Mapped[int] = mapped_column(primary_key=True)
    lang: Mapped[str]
    tpm: Mapped[float]


motor = create_engine("sqlite+pysqlite:///:memory:")
Base.metadata.create_all(motor)

with Session(motor) as sesion:
    sesion.add_all([Run(lang="python", tpm=104.0), Run(lang="rust", tpm=98.0)])
    sesion.commit()

    traido = sesion.get(Run, 1)
    print(traido.lang, traido.tpm)
    traido.tpm = 110.0
    sesion.commit()
    print(sesion.get(Run, 1).tpm)

Cómo funciona

  1. add prepara un objeto; commit escribe y lo expira.
  2. Session.get busca por clave primaria.
  3. El administrador de contexto cierra la sesión al salir.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
27
Caracteres a escribir
612
Tokens
163
Ritmo de tres estrellas
110 tpm

Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 89 segundos.

Escribe este fragmento

Paso 3 de 5 en SQLAlchemy; paso 15 de 19 en Servicios web y acceso a datos.

← Anterior Siguiente →