Je recrute

Je cherche un job

Le framework Flask

Flask est un micro-framework né d'une blague. Open source, il se différencie par sa légèreté permettant de disposer d'une solide base de développement tout en conservant la flexibilité et la lisibilité du langage de programmation Python. Facile à prendre en main, il optimise le processus de développement. Il accompagne ainsi les entreprises dans leurs besoins en applications web de petite et moyenne envergure.

Histoire de Flask

La première version de Flask est née le 1er avril 2010. Le projet est en effet né d'une farce du développeur autrichien Armin Ronacher. L'idée était d'annoncer intégrer dans un seul et même fichier un micro-framework ne nécessitant ni installation, ni configuration, en plus de n'induire aucune dépendance autre qu'à la bibliothèque originelle de Python. Pour parfaire le canular, il décide de proposer un vrai fichier au téléchargement, unifiant en fait des technologies existantes en un seul package et ajoutant un peu de code pour qu'ils fonctionnent ensemble.

Le projet, alors appelé Denied, réunit donc Jinja2 et Werkzeug, un moteur de template et une bibliothèque Python sur lesquels avait travaillé Armin Ronacher. En voulant se moquer de la multiplication des micro-frameworks et montrer qu'il est aisé pour un développeur de créer le sien, il a lui-même créé un outil adopté par la communauté.

Flask a depuis conquis de nombreux développeurs, jusqu'à se retrouver utilisé par LinkedIn ou Pinterest. Il est distribué sous licence BSD (pour Berkeley Software Distribution), une licence libre et non restrictive. Elle permet donc à ses utilisateurs de réutiliser et modifier le code à leur convenance, y compris pour le bénéfice d'actions commerciales.

Avantages de Flask

Flask a été conçu pour être un micro-framework simple et léger. Son but premier est de permettre de démarrer le développement d'une application web sur une base solide sur laquelle appuyer le reste des phases de développement. À partir de cette base, il est possible de construire son projet bloc à bloc, selon les besoins.

Pour le développeur, Flask est donc synonyme de totale liberté. Il maîtrise en effet parfaitement son code puisqu'il l'écrit lui-même et n'a pas à plonger dans la compréhension de fonctionnalités préfabriquées comme ce peut être le cas avec des frameworks plus complets. Son minimalisme le rend facille à prendre en main et apprendre, en même temps qu'il permet au développeur le contrôle total de son travail.

Flask est enfin complètement compatible WSGI, qu'il doit à l'utilisation de Werkzeug. La Web Server Gateway Interface est une interface permettant la communication entre le serveur et l'application. Grâce à l'utilisation de cette norme, toutes les application développées sont compatibles entre elles. Elles ont également la capacité de communiquer avec l'ensemble des serveurs compatibles WSGI, un avantage certain pour la portabilité et la réutilisation du code.

Flask pour une application web professionnelle

Les fonctionnalités de Flask ne sont pas aussi étendues que certains poids lourds comme Django. C'est là sa limite, mais aussi sa force. Grâce à sa légèreté et la rapidité de son implémentation, Flask est un incontournable du prototypage. Son déploiement est rapide et la phase de création peut commencer quasi instantanément. Grâce à Flask, les premiers résultats apparaissent donc dans les meilleurs délais.

Son utilisation ne se limite cependant pas aux prototypes et il convient tout particulièrement aux applications web simples. Il est ainsi tout particulièrement adapté aux entreprises avec beaucoup de services différents. Il peut s'imposer comme une solution de choix pour des applications individuelles correspondant à chacun ou au moins certains de leurs micro-services.

Flask est particulièrement qualifié si votre entreprise a besoin :

  • d'un site site Internet de taille limité,
  • de développer une API REST (Representational state transfer), entraînant une plus grande flexibilité et stabilité du code,
  • de technologies liées à l'Internet des objets, c'est-à-dire aux objets connectés.

2 autres articles en lien avec cette page :