====== Commandes personnalisées ======
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
$ flask
Exemple d'appel des commandes définies ci-dessus :
$ flask create-user albert
$ flask articles import /home/albert/fichier.txt
===== Liste des commandes personnalisées =====
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
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 """
...