{{tag>dev python framework flask}} ====== Flask : Démarrer l'application depuis la CLI ====== La commande **flask** permet notamment d'exécuter l'application sur un serveur de développement intégré au framework ou de démarrer un shell interactif dans le contexte de l'application. Par défaut la commande tente d'importer un module ou un paquetage nommé ''app'' ou ''wsgi'' présent dans le répertoire courant. Une fois l'import réalisée le processus recherche : * une variable ''app'' ou ''application'' ; * une fonction ''create_app'' ou ''make_app'' désignée **application factory** dans la documentation FLASK. Dans les cas ou les paquetages, modules, variables et fonctions n'utilisent pas ces noms par défaut, on devra fournir à la commande flask le moyen de lancer correctement l'application via l'option ''%%--app%%''. Dans sa forme complète, la valeur de l'option %%--app%% contient 3 parties : - Une partie optionnelle qui permet de redéfinir le répertoire de travail ; - le nom du fichier Python ou un chemin d'import ; - Une dernière partie optionnelle indiquant le nom de l'instance de l'application Flask ou de l'application factory. Si le nom désigne une application factory des arguments peuvent également être fournis. Pour ne pas avoir à systématiquement renseigner cet argument sur la ligne de commande on peut définir la variable d'environnement ''FLASK_APP'' ou utiliser un fichier ''.env'' (installer le paquetage python-dotenv) ===== Exemples ===== flask --app src/gcomp run Change le répertoire de travail (entre dans le dossier ''src'') puis charge le module ou paquetage ''gcomp'' flask --app 'gcomp:create_app("dev")' shell Importe le module ou paquetage gcomp puis utilise l'application factory ''create_app'' avec un argument ''"dev"''. FLASK_APP="src/gcomp" flask run # equivalent export FLASK_APP="src/gcomp" flask run Ici on n'a pas utilisé l'option %%--app%% de la commande flask car une variable d'environnement fournit la valeur nécessaire. ====== Références ===== * [[https://flask.palletsprojects.com/en/stable/cli/#application-discovery|Documentation de la CLI Flask (palletsprojects.com)]]