Doc: https://flask.palletsprojects.com/en/2.2.x/cli/#custom-commands
Commande définie au niveau de l'application :
import click from flask import Flask app = Flask(__name__) @app.cli.command("create-user") @click.argument("name") def create_user(name): ...
Commande définie au niveau d'un Blueprint :
import click from flask import Blueprint articles = Blueprint("articles", __name__) ... @articles.cli.command("import") @click.argument("filepath") def import_from_file(filepath): ...
Selon qu'elle est définie au niveau de l'application ou d'un Blueprint, la commande s'appelle de la façon suivante :
$ flask <commande> <arguments...> $ flask <blueprint> <commande> <arguments...>
Exemple d'appel des commandes définies ci-dessus :
$ flask create-user albert $ flask articles import /home/albert/fichier.txt
Taper flask
en ligne de commande affiche les commandes disponibles,
aussi bien celles de Flask que les commandes custom :
$ flask ... Commands: db Perform database migrations. articles <<< blueprint "articles" défini ci-dessus routes Show the routes for the app. run Run a development server. shell Run a shell in the app context.
Taper flask articles
affiche les différentes commandes disponibles
dans le blueprint “articles” :
$ flask articles ... Commands: import <description optionnelle>
Pour mettre une description il suffit de l'écrire en documentation de la fonction correspondante. Exemple :
@articles.cli.command("import") @click.argument("filepath") def import_from_file(filepath): """ Importe les articles depuis un fichier """ ...