0Pricing
Flask Academy · Aula

Empilhe um contexto em scripts e shells

Execute código fora de uma solicitação com app_context.

Empilhe um contexto em scripts e shells é uma aula grátis de Flask Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Flask Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Flask Academy inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

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

Perguntas Frequentes

A aula “Empilhe um contexto em scripts e shells” é grátis?

Sim — o texto completo de “Empilhe um contexto em scripts e shells” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Flask Academy, atualize para CoddyKit PRO. O curso de Flask Academy inclui 4 aulas no total.

O que vou aprender em “Empilhe um contexto em scripts e shells”?

Execute código fora de uma solicitação com app_context. Você pratica Flask Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Flask Academy?

Nenhuma experiência prévia é necessária. Flask Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Empilhe um contexto em scripts e shells”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Flask Academy?

Sim. Cada aula de Flask Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Contexto do aplicativo versus contexto da solicitação
  2. current_app e o objeto g
  3. Locais de contexto e segurança de threads
  4. Empilhe um contexto em scripts e shells
← Voltar para Flask Academy