Forespørgsler med Session
Læs og filtrér data
Forespørgsler med Session er en gratis Python Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Python Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Python Academy-kurset indeholder 4 lektioner i alt.
Session
ORM'en udfører alt sit arbejde gennem en Session. Den håndterer en arbejdsenhed: holder styr på nye, ændrede og slettede objekter og kommunikerer 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)Tilføjelse af objekter
session.add() gør et nyt objekt klar. Intet skrives til databasen, før du kalder commit().
from sqlalchemy.orm import Session
# session.add(user) stages it
# session.commit() writes it
print('add stages, commit saves')Gennemførelse af ændringer
session.commit() skriver ventende ændringer til databasen og gennemfører transaktionen, så ændringerne bliver permanente.
# with Session(engine) as session:
# session.add(User(name='Alice'))
# session.commit()
print('commit persists the work')Forespørgsler med select()
Moderne SQLAlchemy læser data med select(), som udføres gennem sessionen. scalars() returnerer modelinstanser.
from sqlalchemy import select
# stmt = select(User)
# users = session.scalars(stmt).all()
print('select(User) then scalars().all()')Hent alle rækker
session.scalars(select(User)).all() returnerer en liste med alle User-objekter 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')Filtrering med where()
Tilføj en where()-betingelse for at filtrere. Sammenlign en mappet kolonne med en almindelig 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')Hent ét objekt
session.scalars(stmt).first() returnerer det første resultat eller None. one() forventer præcis én række og udløser en fejl ellers.
from sqlalchemy import select
# stmt = select(User).where(User.name == 'Alice')
# user = session.scalars(stmt).first()
print('first() = first match or None')Opslag efter primærnøgle
session.get(User, 1) er den hurtigste måde at hente et enkelt objekt på ud fra dets primærnøgle.
# user = session.get(User, 1)
# print(user.name)
print('session.get(Model, pk) fetches by id')Sortering af resultater
Kæd order_by() sammen med forespørgslen for at sortere. Brug .desc() på en kolonne for faldende rækkefø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')Opdatering af et objekt
Ændr en attribut på et indlæst objekt, og kald derefter commit(). Sessionen registrerer ændringen og udfører en UPDATE.
# user = session.get(User, 1)
# user.name = 'Alicia'
# session.commit() # auto UPDATE
print('Edit attribute, then commit')Sletning af et objekt
session.delete(obj) markerer et objekt til sletning. DELETE udføres ved den næste gennemførelse.
# user = session.get(User, 1)
# session.delete(user)
# session.commit() # row removed
print('delete(obj) then commit removes the row')Hurtig kontrol
Test din viden om sessioner.
Opsummering
Du har lært at læse og ændre data gennem Session.
Sessionholder styr på din arbejdsenhedadd()gør objekter klar, ogcommit()gemmer dem permanentselect()+scalars()læser objekter, ogwhere()filtrerersession.get()henter efter primærnøgle; redigeringer ogdelete()anvendes ved gennemførelse
Lær Python med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 76
- Lektioner
- 320
Ofte stillede spørgsmål
Er lektionen “Forespørgsler med Session” gratis?
Ja — hele teksten til “Forespørgsler med Session” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Python Academy-kurset, skal du opgradere til CoddyKit PRO. Python Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Forespørgsler med Session”?
Læs og filtrér data Du øver dig i Python Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Python Academy?
Der kræves ingen tidligere erfaring. Python Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “Forespørgsler med Session”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Python Academy-lektion?
Ja. Alle Python Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- SQLAlchemy Core kontra ORM
- Definition af modeller
- Forespørgsler med Session
- Relationer og joins