Introduction
Le tutoriel Python Flask "Working with the Shell" fournit des conseils sur l'utilisation du shell interactif dans Flask pour exécuter des commandes Python en temps réel. Ce tutoriel explique comment créer un contexte de requête, déclencher les fonctions avant/après une requête et améliorer l'expérience du shell.
Note: Vous devez créer le fichier de code vous-même et l'exécuter dans l'environnement. Vous pouvez prévisualiser l'état du service Flask sur Web 5000.
Démarrer le shell
Pour démarrer le shell, utilisez la commande flask shell, qui initialise automatiquement le shell avec un contexte d'application chargé.
Interface de ligne de commande :
flask shell
Création d'un contexte de requête
Pour créer un contexte de requête approprié dans le shell, utilisez la méthode test_request_context(), qui crée un objet RequestContext. Dans le shell, poussez et dépilez manuellement le contexte de requête à l'aide des méthodes push() et pop().
## Fichier : shell.py
## Exécution : python shell.py
from flask import Flask
app = Flask(__name__)
## Crée un contexte de requête
ctx = app.test_request_context()
## Pousse le contexte de requête
ctx.push()
## Travailler avec l'objet de requête
## Dépile le contexte de requête
ctx.pop()
Démarrage des fonctions avant/après une requête
En créant un contexte de requête, le code qui est normalement exécuté avant une requête n'est pas déclenché. Pour simuler la fonctionnalité avant une requête, appelez la méthode preprocess_request(). Cela garantit que les connexions à la base de données et autres ressources sont disponibles.
## Fichier : shell.py
## Exécution : python shell.py
from flask import Flask
app = Flask(__name__)
## Crée un contexte de requête
ctx = app.test_request_context()
ctx.push()
## Simule la fonctionnalité avant une requête
app.preprocess_request()
## Travailler avec l'objet de requête
## Dépile le contexte de requête
ctx.pop()
Pour simuler la fonctionnalité après une requête, appelez la méthode process_response() avec un objet de réponse fictif avant de dépiler le contexte de requête.
## Fichier : shell.py
## Exécution : python shell.py
from flask import Flask
app = Flask(__name__)
## Crée un contexte de requête
ctx = app.test_request_context()
ctx.push()
## Simule la fonctionnalité avant une requête
app.preprocess_request()
## Travailler avec l'objet de requête
## Simule la fonctionnalité après une requête
app.process_response(app.response_class())
## Dépile le contexte de requête
ctx.pop()
Amélioration de l'expérience du shell
Pour améliorer l'expérience du shell, créez un module (shelltools.py) avec des méthodes d'aide qui peuvent être importées dans la session interactive. Ce module peut contenir des méthodes d'aide supplémentaires pour des tâches telles que l'initialisation de la base de données ou la suppression de tables.
## Fichier : shelltools.py
def initialize_database():
## Code pour initialiser la base de données
pass
def drop_tables():
## Code pour supprimer les tables
pass
Dans le shell interactif, importez les méthodes souhaitées à partir du module shelltools.
## Fichier : shell.py
## Exécution : python shell.py
from shelltools import initialize_database, drop_tables
## Importez les méthodes souhaitées à partir du module shelltools
from shelltools import *
## Utilisez les méthodes importées
initialize_database()
drop_tables()
Sommaire
Le tutoriel "Travailler avec le shell" fournit des instructions étape par étape pour utiliser le shell interactif dans Flask. Il explique comment créer un contexte de requête, démarrer les fonctions avant/après une requête et améliorer l'expérience du shell en importnant des méthodes d'aide à partir d'un module séparé.