Flask Academy · Les

Een context pushen in scripts en shells

Voer code buiten een request uit met app_context.

Les 4 van 413 stappen

Een context pushen in scripts en shells is een gratis Flask Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Flask Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Flask Academy bevat in totaal 4 lessen.

Buiten het web

Soms voer je Flask-code uit zonder aanvraag, bijvoorbeeld in een script dat de database vult. Er is dan geen context, dus de gebruikelijke proxies werken niet.

De veelzeggende fout

Voer zulke code uit en Flask genereert RuntimeError: working outside of application context. Daarmee geeft Flask aan dat er geen app-context actief is.

Activeer deze zelf

Los dit op door er één te activeren met app.app_context(). Omring je code met een with-blok en current_app werkt weer.

with app.app_context():
    print(current_app.name)

Wat het with-blok doet

Bij het binnengaan van het with-blok wordt de context geactiveerd en bij het verlaten ervan verwijderd. Je hoeft nooit zelf op te ruimen.

Nu werken extensies

Binnen het blok gedragen extensies die aan de app zijn gekoppeld zich normaal. Je kunt db.create_all() uitvoeren of modellen opvragen vanuit een gewoon script.

with app.app_context():
    db.create_all()

Een neppe aanvraag nodig?

Om code te testen die request leest, duw je een testaanvraagcontext met test_request_context op zijn plek in plaats van een appcontext.

with app.test_request_context("/hello"):
    print(request.path)

De Flask-shell

Met de opdracht flask shell open je een Python-shell waarin al een appcontext actief is, zodat je interactief met je app kunt experimenteren.

flask shell

Ook CLI-opdrachten

Aangepaste flask-opdrachten die je registreert, worden ook automatisch binnen een appcontext uitgevoerd, zodat seed- en beheerscripts direct werken.

@app.cli.command()
def seed():
    db.create_all()

Kies de juiste context

Kies op basis van wat je nodig hebt: gebruik app_context wanneer je alleen de app of database aanraakt, en een requestcontext wanneer je code aanvraaggegevens leest.

Houd de context beperkt

Duw contexten in een compact with-blok op hun plek, niet voor het hele script. Een kleinere scope betekent duidelijkere code en een voorspelbare opruiming.

Waarom dit belangrijk is

Door contexten op hun plek te duwen, kun je applogica hergebruiken in migraties, cronjobs en tests, niet alleen binnen actieve webaanvragen.

Korte controle

Laten we de oplossing voor de contextfout goed vastleggen.

Samenvatting

Geen aanvraag? Duw er een op zijn plek. Gebruik app_context voor werk aan de app en database, test_request_context voor aanvraaggegevens, en laat flask shell dit voor je afhandelen. 🎉

Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
30
Lessen
120

Veelgestelde vragen

Is de les “Een context pushen in scripts en shells” gratis?

Ja — de volledige tekst van “Een context pushen in scripts en shells” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Flask Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Flask Academy bevat in totaal 4 lessen.

Wat leer ik in “Een context pushen in scripts en shells”?

Voer code buiten een request uit met app_context. Je oefent met Flask Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Flask Academy te beginnen?

Ervaring vooraf is niet nodig. Flask Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Een context pushen in scripts en shells”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Flask Academy?

Ja. Elke les over Flask Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. App-context versus request-context
  2. current_app en het g-object
  3. Context locals en threadveiligheid
  4. Een context pushen in scripts en shells
← Terug naar Flask Academy