{{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/