Ceci est une ancienne révision du document !
Flask n'impose aucune arborescence, selon les besoins on peut opter pour une application monolithique ou le découpage en packages et modules.
Pour les petit projets, les tests ou les tutoriaux, on utilise généralement un simple module Python et l' instanciation d'un objet Flask. Cette approche monolithique permet de coder rapidement une preuve de concept, un prototype par exemple.
Lorsque les projets grossissent ou pour pouvoir travailler en équipe, le découpage en packages et modules et l'utilisation des standards et des recommandations s'imposent. Un version monolithique deviendrait difficilement maintenable.
/home/user/Projects/aAppProject ├── myapp/ # le paquetage de l'application flask │ ├── __init__.py │ ├── db.py │ ├── schema.sql │ ├── auth.py │ ├── blog.py │ ├── templates/ # les modèles de type jinja2 │ │ ├── base.html │ │ ├── auth/ │ │ │ ├── login.html │ │ │ └── register.html │ │ └── blog/ │ │ ├── create.html │ │ ├── index.html │ │ └── update.html │ └── static/ # les ressources statiques │ └── style.css ├── tests/ # les tests unitaires │ ├── conftest.py │ ├── data.sql │ ├── test_factory.py │ ├── test_db.py │ ├── test_auth.py │ └── test_blog.py ├── .venv/ # L'environnement virtuel Python ├── README.md # ├── install └── MANIFEST.in
Pour lancer l'application :
cd /home/user/Projects/aAppProject flask --app myapp run --debug
app.py ou wsgi.py flask l'exécute automatiquement, l'argument --app n'est pas nécessaire.
--app on peut également définir la variable d'environnement FLASK_APP.
Pour pouvoir lancer automatiquement une application Flask :
init.py contient soit l'instanciation d'un objet de type Flask, soit une fonction retournant cet objet. Cette fonction est désignée factory par défaut flask s'attend à ce qu'elle soit appelée create_app.Dans ce cas on peut lancer l'application avec la commande :
flask --app aAppPackage run --debug # Si la fonction factory a un autre nom que create_app utiliser la syntaxe package:factory_function flask --app aAppPackage:another_factory_name run --debug