Trabalhando com o Shell

Beginner

This tutorial is from open-source community. Access the source code

Introdução

O tutorial Python Flask "Trabalhando com o Shell" fornece orientação sobre o uso do shell interativo no Flask para executar comandos Python em tempo real. Este tutorial explica como criar um contexto de requisição, disparar funções before/after request e melhorar a experiência do shell.

Nota: Você precisa criar o arquivo de código você mesmo e executá-lo no ambiente. Você pode visualizar o status do serviço Flask na Web 5000.

Iniciando o Shell

Para iniciar o shell, use o comando flask shell, que inicializa automaticamente o shell com um contexto de aplicação carregado.

Interface de Linha de Comando (Command Line Interface):

flask shell

Criando um Contexto de Requisição

Para criar um contexto de requisição adequado no shell, use o método test_request_context(), que cria um objeto RequestContext. No shell, faça o push e o pop manualmente do contexto de requisição usando os métodos push() e pop().

## File: shell.py
## Execution: python shell.py

from flask import Flask

app = Flask(__name__)

## Create a request context
ctx = app.test_request_context()

## Push the request context
ctx.push()

## Work with the request object

## Pop the request context
ctx.pop()

Disparando Funções Before/After Request

Ao criar um contexto de requisição, o código que normalmente é executado antes de uma requisição não é acionado. Para simular a funcionalidade before-request, chame o método preprocess_request(). Isso garante que as conexões com o banco de dados e outros recursos estejam disponíveis.

## File: shell.py
## Execution: python shell.py

from flask import Flask

app = Flask(__name__)

## Create a request context
ctx = app.test_request_context()
ctx.push()

## Simulate the before-request functionality
app.preprocess_request()

## Work with the request object

## Pop the request context
ctx.pop()

Para simular a funcionalidade after-request, chame o método process_response() com um objeto de resposta fictício antes de fazer o pop do contexto de requisição.

## File: shell.py
## Execution: python shell.py

from flask import Flask

app = Flask(__name__)

## Create a request context
ctx = app.test_request_context()
ctx.push()

## Simulate the before-request functionality
app.preprocess_request()

## Work with the request object

## Simulate the after-request functionality
app.process_response(app.response_class())

## Pop the request context
ctx.pop()

Melhorando a Experiência no Shell

Para melhorar a experiência no shell, crie um módulo (shelltools.py) com métodos auxiliares que podem ser importados para a sessão interativa. Este módulo pode conter métodos auxiliares adicionais para tarefas como inicializar o banco de dados ou remover tabelas.

## File: shelltools.py

def initialize_database():
    ## Code to initialize the database
    pass

def drop_tables():
    ## Code to drop tables
    pass

No shell interativo, importe os métodos desejados do módulo shelltools.

## File: shell.py
## Execution: python shell.py

from shelltools import initialize_database, drop_tables

## Import desired methods from shelltools module
from shelltools import *

## Use imported methods
initialize_database()
drop_tables()

Resumo

O tutorial "Trabalhando com o Shell" fornece instruções passo a passo para usar o shell interativo no Flask. Ele explica como criar um contexto de requisição, disparar funções before/after request e melhorar a experiência no shell importando métodos auxiliares de um módulo separado.