Spørringer med Session
Les og filtrer data
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.
Sessionholder oversikt over arbeidsenheten Deresadd()klargjør, menscommit()lagrer permanentselect()+scalars()leser objekter, menswhere()filtrerersession.get()henter med primærnøkkel; redigeringer ogdelete()utføres ved bekreftelse
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
- SQLAlchemy Core kontra ORM
- Definere modeller
- Spørringer med Session
- Relasjoner og joins