API de línea de comandos de Flask

Flask construye herramientas de línea de comandos basadas en Click.

Medianteflaskel comando ejecuta la aplicación y gestiona tareas.

Todas las clases CLI están enflask.cliel módulo.


FlaskGroup

El grupo de comandos principal de Flask. Medianteflaskel comando se usa.

Parámetros Descripción
add_default_commands=True Si se añaden comandos predeterminados como run, shell, routes, etc.
create_app=None Función de fábrica de la aplicación, devuelve una instancia de Flask
add_version_option=True Si se añade la opción --version
load_dotenv=True Si se cargan los archivos .env y .flaskenv
set_debug_flag=True Si se establece el indicador debug según las variables de entorno

AppGroup

Clase base del grupo de comandos CLI para aplicaciones y blueprints. Medianteapp.cliobp.clise añaden comandos personalizados.

Métodos Descripción
command(*args, **kwargs) Registra comandos CLI. De forma predeterminada envuelve automáticamente con with_appcontext
group(*args, **kwargs) Registra subcomandos de grupo. Usa AppGroup como clase de grupo por defecto

AppGroup.command() está habilitado por defectowith_appcontext=True, lo que significa que tu función de comando tendrá automáticamente el contexto de la aplicación. Si no lo necesitas, pasawith_appcontext=False。


ScriptInfo

Almacena información en tiempo de ejecución del script para cargar la aplicación. Normalmente no se necesita operar manualmente.

Atributos Descripción
app_import_path Ruta de importación de la aplicación (valor de la opción --app)
create_app Función de fábrica de la aplicación
data Diccionario de datos adicionales arbitrarios
load_app() Carga y devuelve la instancia de la aplicación Flask

Funciones de utilidad

Funciones Descripción
with_appcontext(f) Decorador. Asegura que la función decorada se ejecute en el contexto de la aplicación.
pass_script_info(f) Decorador. Pasa la instancia de ScriptInfo como primer parámetro a la función.
load_dotenv(path) Carga las variables de entorno del archivo .env

Comandos predeterminados

Comando Descripción Parámetros comunes
flask run Inicia el servidor de desarrollo --host, --port, --debug, --reload/--no-reload
flask shell Inicia un shell interactivo de Python Carga automáticamente variables de contexto como app, g, etc.
flask routes Enumera todas las rutas registradas --sort (endpoint/methods/domain/rule/match), --all-methods

Opciones estándar

Opción Descripción
-A / --app IMPORT Especifica el módulo y la instancia de la aplicación, como "app:create_app()"
--debug / --no-debug Habilita/deshabilita el modo de depuración
-e / --env-file FILE Especifica la ruta del archivo .env
--version Muestra las versiones de Flask y de las dependencias

Ejemplos de código

Ejemplos

from flask import Flask

app = Flask(__name__)

# Registrar comando personalizado
@app.cli.command("init-db")
def init_db_command():
    """Inicializa la base de datos"""
    print("Database initialized.")

# Registrar comando con parámetros
@app.cli.command("greet")
@app.cli.option("--name", "-n", default="EJEMPLO", help="Objeto del saludo")
def greet_command(name):
    """Envía un saludo"""
    print(f"Hello, {name}!")

# Registrar grupo de subcomandos
user_cli = app.cli.group("user")

@user_cli.command("list")
def list_users():
    """Enumera todos los usuarios"""
    print("Listing users...")

@user_cli.command("create")
@user_cli.option("--username", required=True)
def create_user(username):
    """Crea un nuevo usuario"""
    print(f"Creating user: {username}")

# Uso:
# flask init-db
# flask greet --name World
# flask user list
# flask user create --username ejemplo
Otras extensiones