Flask Academy · Lektion

App context kontra request context

Forstå de to contexts, og hvad der findes i hver af dem.

Lektion 1 af 413 trin

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.path

Hvorfor 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. 🎉

Gratis at komme i gang

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

  1. App context kontra request context
  2. current_app og g-objektet
  3. Context locals og trådsikkerhed
  4. Push en context i scripts og shells
← Tilbage til Flask Academy