Python Academy · leksjon

Spørringer med Session

Les og filtrer data

Leksjon 3 av 413 trinn

Spørringer med Session er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 4 leksjoner.

Session

ORM-en utfører alt arbeidet sitt gjennom en Session. Den administrerer en arbeidsenhet: holder oversikt over nye, endrede og slettede objekter og kommuniserer med databasen.

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

Legge til objekter

session.add() klargjør et nytt objekt. Ingenting skrives til databasen før De kaller commit().

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

Bekrefte endringer

session.commit() sender ventende endringer til databasen og bekrefter transaksjonen, slik at endringene blir permanente.

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

Spørre med select()

Moderne SQLAlchemy leser data med select(), som kjøres gjennom sesjonen. scalars() returnerer modellinstanser.

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

Hente alle rader

session.scalars(select(User)).all() returnerer en liste med alle User-objektene i tabellen.

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

Filtrere med where()

Legg til en where()-betingelse for å filtrere. Sammenlign en tilordnet kolonne med en vanlig 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')

Hente ett objekt

session.scalars(stmt).first() returnerer det første treffet eller None. one() forventer nøyaktig én rad og utløser en feil ellers.

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

Slå opp med primærnøkkel

session.get(User, 1) er den raskeste måten å hente ett enkelt objekt på ved hjelp av primærnøkkelen.

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

Sortere resultater

Kjed sammen med order_by() for å sortere. Bruk .desc() på en kolonne for synkende rekkefølge.

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

Oppdatere et objekt

Endre et attributt på et innlastet objekt, og kall deretter commit(). Sesjonen oppdager endringen og sender en UPDATE.

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

Slette et objekt

session.delete(obj) markerer et objekt for sletting. DELETE utføres ved neste bekreftelse.

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

Hurtigsjekk

Test kunnskapene Deres om sesjoner.

Oppsummering

De har lært å lese og endre data gjennom Session.

  • Session holder oversikt over arbeidsenheten Deres
  • add() klargjør, mens commit() lagrer permanent
  • select() + scalars() leser objekter, mens where() filtrerer
  • session.get() henter med primærnøkkel; redigeringer og delete() utføres ved bekreftelse
Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
76
Leksjoner
320

Ofte stilte spørsmål

Er leksjonen «Spørringer med Session» gratis?

Ja – hele teksten i «Spørringer med Session» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Spørringer med Session»?

Les og filtrer data Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Python Academy?

Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Spørringer med Session»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?

Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. SQLAlchemy Core kontra ORM
  2. Definere modeller
  3. Spørringer med Session
  4. Relasjoner og joins
← Tilbake til Python Academy