App context kontra request context
Forstå de to contexts, og hvad der findes i hver af dem.
App context kontra request context er en gratis Flask Academy-lektion på CoddyKit. Dette er lektion 1 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 Flask Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Flask Academy-kurset indeholder 4 lektioner i alt.
To slags kontekst
Flask kører din kode inde i en context, en midlertidig boble, der indeholder de data, din visning har brug for. Der findes to varianter: en appkontekst og en forespørgselskontekst.
Appkonteksten
Application context holder styr på, hvilken app der er aktiv lige nu. Den findes, når Flask udfører arbejde, også uden for en reel webforespørgsel.
Forespørgselskonteksten
Request context omslutter én indgående forespørgsel. Den indeholder URL, headere og formulardata for netop denne besøgende.
En forespørgsel skubber også appen
Når en forespørgsel ankommer, skubber Flask en forespørgselskontekst, og en app context følger automatisk med. Derfor er begge altid aktive inde i en visning.
Hvem bor i appkonteksten
Appkonteksten giver dig current_app og g-objektet. Brug dem til konfiguration, databaseforbindelsen og andre delte data pr. forespørgsel.
from flask import current_app
print(current_app.name)Hvem bor i forespørgselskonteksten
Forespørgselskonteksten giver dig request og session. De beskriver den besøgende: vedkommendes sti, forespørgselsstreng, indsendte formular og cookies.
from flask import request
path = request.pathHvorfor dele dem op
Opdelingen af kontekster betyder, at arbejde på appniveau, f.eks. et opstartsscript, kan bruge current_app uden at lade som om der findes en falsk webforespørgsel.
Uden for enhver kontekst
Hvis du bruger request uden en aktiv kontekst, rejser Flask en runtimefejl. Proxyen har endnu ikke noget reelt objekt at pege på.
Kontekster ligger på en stak
Flask opbevarer kontekster på en stack. Hver kontekst skubbes på, når arbejdet begynder, og tages af, når det slutter, så de rigtige data altid ligger øverst.
En konteksts levetid
En forespørgselskontekst lever kun under den ene forespørgsel. Når response er sendt, tager Flask begge kontekster af, og de forsvinder.
Mental model
Tænk på det sådan: app context besvarer spørgsmålet om hvilken app, og forespørgselskonteksten besvarer spørgsmålet om hvilken besøgende. Inde i en visning har du begge på én gang.
Hurtigt tjek
Lad os skelne mellem de to kontekster.
Opsummering
To bobler, to opgaver: app context angiver hvilken app, og forespørgselskonteksten angiver hvilken besøgende. En forespørgsel skubber begge på, så visninger altid har dem begge. 🎉
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
- 30
- Lektioner
- 120
Ofte stillede spørgsmål
Er lektionen “App context kontra request context” gratis?
Ja — hele teksten til “App context kontra request context” 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 Flask Academy-kurset, skal du opgradere til CoddyKit PRO. Flask Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “App context kontra request context”?
Forstå de to contexts, og hvad der findes i hver af dem. Du øver dig i Flask 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å Flask Academy?
Der kræves ingen tidligere erfaring. Flask 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 1 af 4.
Hvor lang tid tager lektionen “App context kontra request context”?
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 Flask Academy-lektion?
Ja. Alle Flask 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
- App context kontra request context
- current_app og g-objektet
- Context locals og trådsikkerhed
- Push en context i scripts og shells