0Pricing
Python Academy · Lektion

Abfragen mit der Session

Daten lesen und filtern

Abfragen mit der Session ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Die Session

Das ORM erledigt seine gesamte Arbeit über eine Session. Sie verwaltet eine Arbeitseinheit: Sie verfolgt neue, geänderte und gelöschte Objekte und kommuniziert mit der Datenbank.

from sqlalchemy import create_engine
from sqlalchemy.orm import Session
engine = create_engine('sqlite:///:memory:')
with Session(engine) as session:
    print('Session open:', session)

Objekte hinzufügen

session.add() merkt ein neues Objekt vor. Nichts wird in die Datenbank geschrieben, bis Sie commit() ausführen.

from sqlalchemy.orm import Session
# session.add(user) stages it
# session.commit() writes it
print('add stages, commit saves')

Änderungen festschreiben

session.commit() schreibt ausstehende Änderungen in die Datenbank und bestätigt die Transaktion, sodass sie dauerhaft gespeichert werden.

# with Session(engine) as session:
#     session.add(User(name='Alice'))
#     session.commit()
print('commit persists the work')

Abfragen mit select()

Modernes SQLAlchemy liest Daten mit select(), das über die Session ausgeführt wird. scalars() gibt Modellinstanzen zurück.

from sqlalchemy import select
# stmt = select(User)
# users = session.scalars(stmt).all()
print('select(User) then scalars().all()')

Alle Zeilen abrufen

session.scalars(select(User)).all() gibt eine Liste mit jedem User-Objekt in der Tabelle zurück.

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')

Mit where() filtern

Fügen Sie eine where()-Klausel hinzu, um zu filtern. Vergleichen Sie eine zugeordnete Spalte mit einem normalen Python-Operator.

from sqlalchemy import select
# stmt = select(User).where(User.age > 28)
# adults = session.scalars(stmt).all()
print('where(User.age > 28) filters rows')

Ein Objekt abrufen

session.scalars(stmt).first() gibt den ersten Treffer oder None zurück. one() erwartet genau eine Zeile und löst andernfalls eine Ausnahme aus.

from sqlalchemy import select
# stmt = select(User).where(User.name == 'Alice')
# user = session.scalars(stmt).first()
print('first() = first match or None')

Suche nach Primärschlüssel

session.get(User, 1) ist der schnellste Weg, ein einzelnes Objekt über seinen Primärschlüssel abzurufen.

# user = session.get(User, 1)
# print(user.name)
print('session.get(Model, pk) fetches by id')

Ergebnisse sortieren

Verketten Sie order_by(), um zu sortieren. Verwenden Sie .desc() für eine absteigende Sortierung.

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')

Ein Objekt aktualisieren

Ändern Sie ein Attribut eines geladenen Objekts und führen Sie anschließend commit() aus. Die Session erkennt die Änderung und führt ein UPDATE aus.

# user = session.get(User, 1)
# user.name = 'Alicia'
# session.commit()  # auto UPDATE
print('Edit attribute, then commit')

Ein Objekt löschen

session.delete(obj) markiert ein Objekt zum Löschen. Das DELETE wird beim nächsten Commit ausgeführt.

# user = session.get(User, 1)
# session.delete(user)
# session.commit()  # row removed
print('delete(obj) then commit removes the row')

Kurzer Test

Testen Sie Ihr Wissen über Sessions.

Zusammenfassung

Sie haben gelernt, Daten über die Session zu lesen und zu ändern.

  • Die Session verfolgt Ihre Arbeitseinheit
  • add() merkt Änderungen vor, commit() speichert sie dauerhaft
  • select() + scalars() lesen Objekte; where() filtert sie
  • session.get() ruft Objekte über den Primärschlüssel ab; Änderungen und delete() werden beim Commit angewendet

Häufig gestellte Fragen

Ist die Lektion „Abfragen mit der Session“ kostenlos?

Ja — der vollständige Text von „Abfragen mit der Session“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Abfragen mit der Session“?

Daten lesen und filtern Du übst Python Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Python Academy zu starten?

Keine Vorkenntnisse erforderlich. Python Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Abfragen mit der Session“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Python Academy-Lektion Code schreiben und ausführen?

Ja. Jede Python Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. SQLAlchemy Core vs. ORM
  2. Modelle definieren
  3. Abfragen mit der Session
  4. Beziehungen und Joins
← Zurück zu Python Academy