Outils pour utilisateurs

Outils du site


Panneau latéral

Plan du Site:

python:flask:command_line_custom

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 <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

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  <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 """
    ...
python/flask/command_line_custom.txt · Dernière modification: 2022/12/05 20:26 par marclebrun