Flask n'impose aucune arborescence, cependant lorsque les projets grossissent ou pour pouvoir travailler en équipe, il est judicieux d'adopter certaines recommandations :
/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.
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