Introducción
El tutorial de Python Flask "Trabajando con la shell" ofrece orientación sobre cómo usar la shell interactiva en Flask para ejecutar comandos de Python en tiempo real. Este tutorial explica cómo crear un contexto de solicitud, activar funciones antes/después de la solicitud y mejorar la experiencia de la shell.
Nota: Debes crear el archivo de código por ti mismo y ejecutarlo en el entorno. Puedes previsualizar el estado del servicio Flask en el Web 5000.
Iniciando la shell
Para iniciar la shell, utiliza el comando flask shell, que inicializa automáticamente la shell con un contexto de aplicación cargado.
Interfaz de línea de comandos:
flask shell
Creando un contexto de solicitud
Para crear un contexto de solicitud adecuado en la shell, utiliza el método test_request_context(), que crea un objeto RequestContext. En la shell, empuja y quita manualmente el contexto de solicitud utilizando los métodos push() y pop().
## Archivo: shell.py
## Ejecución: python shell.py
from flask import Flask
app = Flask(__name__)
## Crea un contexto de solicitud
ctx = app.test_request_context()
## Empuja el contexto de solicitud
ctx.push()
## Trabaja con el objeto de solicitud
## Quita el contexto de solicitud
ctx.pop()
Activando funciones antes/demás de la solicitud
Al crear un contexto de solicitud, el código que normalmente se ejecuta antes de una solicitud no se activa. Para simular la funcionalidad antes de la solicitud, llama al método preprocess_request(). Esto garantiza que las conexiones a la base de datos y otros recursos estén disponibles.
## Archivo: shell.py
## Ejecución: python shell.py
from flask import Flask
app = Flask(__name__)
## Crea un contexto de solicitud
ctx = app.test_request_context()
ctx.push()
## Simula la funcionalidad antes de la solicitud
app.preprocess_request()
## Trabaja con el objeto de solicitud
## Quita el contexto de solicitud
ctx.pop()
Para simular la funcionalidad después de la solicitud, llama al método process_response() con un objeto de respuesta ficticio antes de quitar el contexto de solicitud.
## Archivo: shell.py
## Ejecución: python shell.py
from flask import Flask
app = Flask(__name__)
## Crea un contexto de solicitud
ctx = app.test_request_context()
ctx.push()
## Simula la funcionalidad antes de la solicitud
app.preprocess_request()
## Trabaja con el objeto de solicitud
## Simula la funcionalidad después de la solicitud
app.process_response(app.response_class())
## Quita el contexto de solicitud
ctx.pop()
Mejora la experiencia de la shell
Para mejorar la experiencia de la shell, crea un módulo (shelltools.py) con métodos auxiliares que se pueden importar en la sesión interactiva. Este módulo puede contener métodos auxiliares adicionales para tareas como la inicialización de la base de datos o la eliminación de tablas.
## Archivo: shelltools.py
def initialize_database():
## Código para inicializar la base de datos
pass
def drop_tables():
## Código para eliminar tablas
pass
En la shell interactiva, importa los métodos deseados del módulo shelltools.
## Archivo: shell.py
## Ejecución: python shell.py
from shelltools import initialize_database, drop_tables
## Importa los métodos deseados del módulo shelltools
from shelltools import *
## Utiliza los métodos importados
initialize_database()
drop_tables()
Resumen
El tutorial "Trabajando con la shell" proporciona instrucciones detalladas para utilizar la shell interactiva en Flask. Explica cómo crear un contexto de solicitud, activar funciones antes/demás de la solicitud y mejorar la experiencia de la shell importando métodos auxiliares de un módulo separado.