Outils pour utilisateurs

Outils du site


dev:python:flask:notes

Flask

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
Si le fichier est nommé app.py ou wsgi.py flask l'exécute automatiquement, l'argument --app n'est pas nécessaire.

La fonction "Factory"

Pour pouvoir lancer automatiquement une application Flask :

  • On place les fichiers de l'application dans un paquetage ;
  • Le fichier 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

Références

dev/python/flask/notes.txt · Dernière modification : 2024/11/03 17:47 de yoann