0Pricing
Flask Academy · Leçon

Activer un contexte dans les scripts et les consoles

Exécutez du code hors requête avec app_context.

Activer un contexte dans les scripts et les consoles est une leçon Flask Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Flask Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Flask Academy comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Outside the Web

Sometimes you run Flask code with no request, like a script that seeds the database. There is no context, so the usual proxies fail.

The Telltale Error

Run such code and Flask raises RuntimeError: working outside of application context. It is telling you no app context is active.

Push It Yourself

Fix it by pushing one with app.app_context(). Wrap your code in a with block and current_app starts working again.

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

What the with Block Does

Entering the with block pushes the context, and leaving it pops the context. You never have to clean up by hand.

Now Extensions Work

Inside the block, extensions bound to the app behave normally. You can run db.create_all() or query models from a plain script.

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

Need a Fake Request?

To exercise code that reads request, push a test request context with test_request_context instead of an app context.

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

The Flask Shell

The flask shell command opens a Python shell with an app context already pushed, so you can poke at your app interactively.

flask shell

CLI Commands Too

Custom flask commands you register also run inside an app context automatically, so seed and admin scripts just work.

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

Match the Right Context

Pick by need: use app_context when you only touch the app or database, and a request context when your code reads request data.

Keep It Scoped

Push contexts in a tight with block, not for the whole script. Smaller scope means clearer code and predictable teardown.

Why This Matters

Pushing contexts lets you reuse app logic in migrations, cron jobs, and tests, not just inside live web requests.

Quick Check

Let us nail the fix for the context error.

Recap

No request? Push one. Use app_context for app and database work, test_request_context for request data, and let flask shell handle it for you. 🎉

Questions Fréquemment Posées

La leçon « Activer un contexte dans les scripts et les consoles » est-elle gratuite ?

Oui — le texte complet de « Activer un contexte dans les scripts et les consoles » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Flask Academy, passe à CoddyKit PRO. Le cours Flask Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Activer un contexte dans les scripts et les consoles » ?

Exécutez du code hors requête avec app_context. Tu pratiques Flask Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Flask Academy ?

Aucune expérience préalable n'est requise. Flask Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Activer un contexte dans les scripts et les consoles » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Flask Academy ?

Oui. Chaque leçon Flask Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Contexte de l’application ou contexte de la requête
  2. current_app et l’objet g
  3. Variables locales de contexte et sécurité des threads
  4. Activer un contexte dans les scripts et les consoles
← Retour à Flask Academy