{{tag>dev python web flask extensions}}
:TODO_DOCUPDATE:
====== Flask : A propos des extensions ======
Les extensions sont des packages Python ajoutant des fonctionnalités au framework Flask. On liste ici quelques extensions couramment utilisées.
* Flask-Cache - for blazing-fast websites
* Flask-DebugToolbar - useful in the development phase
* Flask-Limiter - Limiter/controler les requêtes
* Flask-Login - Gestion de l'authentification
* Flask-Maintenance - Passer l'application en mode maintenance
* Flask-Marshmallow - for API development
* Flask-Minify - HTML & assets compression
* Flask-WTF - Formulaires WTF
===== Usage et généralités =====
La documentation officielle détaille
- Installer le package python via pip ;
- Instancier l'extension en fournissant l'application Flask en para ;
===== Rechercher des extensions Flask =====
Les extensions Flask sont nommées par convention Flask-Xxxx ou Xxxx-Flask. Via le service web Pypi rechercher les packages avec le tag [[https://pypi.org/search/?c=Framework+%3A%3A+Flask|Framework::Flask]].
===== debug-toolbar =====
Ajoute une barre d'outil de débogage
Depuis l'environnement virtuel Python3 :
pip install flask-debugtoolbar
NB : La barre n'est visible qu'en mode debug et la variable SECRET_KEY doit exister.
from flask import Flask
from flask_debugtoolbar import DebugToolbarExtension
app = Flask(__name__)
# La méthode update permet de modifier plusieurs variables de configuration
app.config.update(
SECRET_KEY = 'your_secret_key_here',
DEBUG = True )
# Initialise l'extension
toolbar = DebugToolbarExtension(app)
Pour que la barre puisse être correctement insérée, la réponse doit contenir les balises
===== Flask-Marshmallow =====
Marshmallow est une bibliothèque Python de sérialisation/désérialisation au format JSON. Elle est très utilisée pour le développement des API.
[[https://flask-marshmallow.readthedocs.io/en/latest/|Documentation Flask-Marshmallow (readthedocs.io)]]
===== Flask-Migrate =====
Flask-Migrate permet de gérer les migrations de la base de données et ainsi de conserver les données et leur cohérence entre deux versions. La note ...
===== Références =====
* [[https://flask.palletsprojects.com/en/stable/extensions/|Documentation Flask des extensions]]
* https://blog.appseed.us/flask-extensions-debug-toolbar-minify-limiter/