Flask (framework)
Flask est un micro framework open-source de développement web en Python. Il est classé comme microframework car il est très léger[2]. Flask a pour objectif de garder un noyau simple mais extensible. Il n'intègre pas de système d'authentification, pas de couche d'abstraction de base de données, ni d'outil de validation de formulaires. Cependant, de nombreuses extensions permettent d'ajouter facilement des fonctionnalités[3]. Il est distribué sous licence BSD[4].
Développé par | Armin Ronacher (en) |
---|---|
Première version | |
Dernière version | 2.3.2 ()[1] |
DĂ©pĂ´t | github.com/pallets/flask |
Assurance qualité | Intégration continue |
État du projet | En développement actif |
Écrit en | Python |
Système d'exploitation | Multiplateforme |
Environnement | Multiplate-forme |
Langues | Anglais |
Type | Framework web |
Politique de distribution | Gratuit |
Licence | BSD 3-clauses |
Documentation | flask.palletsprojects.com |
Site web | flask.palletsprojects.com |
Histoire
Flask a été créé initialement par Armin Ronacher comme étant un poisson d'avril[5]. Le souhait de Ronacher était de réaliser un framework web contenu dans un seul fichier Python mais pouvant maintenir des applications très demandées.
En 2018, Flask était élu "Framework web le plus populaire" par le Python Developers Survey[6]. En janvier 2020, il cumulait plus de 59000 étoiles sur GitHub[7], plus que n'importe quel autre framework de développement web Python.
Fonctionnalités
Flask se base sur deux modules Werkzeug et jinja2 pour proposer plusieurs des fonctionnalités suivantes :
- Serveur de développement[8] et debugger
- Simplifie l'Ă©criture de tests unitaires[9]
- Moteur de template pour le rendu HTML[10]
- Supporte les cookies sécurisés (session)
- Entièrement compatible avec WSGI 1.0
- Se base sur Unicode
- Documentation complète
- Déploiement aisé sur plusieurs hébergeurs[11]
- Ajout de fonctionnalités via les extensions[12]
Exemple
Le programme de base pour utiliser Flask est :
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "Hello world !"
if __name__ == "__main__":
app.run()
Références
- « Release 2.3.2 », (consulté le )
- « Foreword — Flask Documentation (1.1.x) », sur flask.palletsprojects.com (consulté le )
- (en) « Les packages de PyPI taggés avec "Framework :: Flask". », sur pypi.org
- (en) « License », sur flask.pocoo.org (consulté le ).
- (en) Armin Ronacher, « Opening the Flask » [PDF], (consulté le ).
- (en) « Python Developers Survey 2018 Results », sur JetBrains (consulté le )
- (en) « Stargazers - pallets/flask », sur github.com (consulté le )
- (en) « Development Server », sur flask.palletsprojects.com (consulté le )
- « Testing Flask Applications — Flask Documentation (1.1.x) », sur flask.palletsprojects.com (consulté le )
- « Templates — Flask Documentation (1.1.x) », sur flask.palletsprojects.com (consulté le )
- « Deployment Options — Flask Documentation (1.1.x) », sur flask.palletsprojects.com (consulté le )
- « Extensions — Flask Documentation (1.1.x) », sur flask.palletsprojects.com (consulté le )