Introduction à Flask
Flask est un framework léger d'application web Python développé et maintenu par l'organisation Pallets.
Il est connu pour sa simplicité et sa flexibilité, ce qui vous permet de créer rapidement des applications web tout en ayant la capacité de passer à l'échelle pour des projets complexes.

Flask est un micro-framework web développé en Python, qualifié de microframework. La raison fondamentale est qu'il ne lie par lui-même aucun outil dédié ni bibliothèque de dépendances, et n'inclut pas nativement de composants web courants tels que les couches d'abstraction de base de données et la validation de formulaires.
Flask dispose d'une bonne extensibilité et peut ajouter des plugins de fonctionnalités selon les besoins. Actuellement, il existe des extensions matures pour l'ORM (mappage objet-relationnel), la validation de formulaires, le téléversement de fichiers, l'authentification ouverte et divers outils de développement complémentaires, qui peuvent réaliser les fonctionnalités requises pour les projets selon les besoins.
Qu'est-ce que Flask
Flask est unWSGI(Web Server Gateway Interface)framework d'application web.
WSGI est une interface standard définie par Python qui spécifie comment les serveurs web communiquent avec les applications web Python. Vous pouvez le considérer comme le « socket universel » du monde web Python.
Flask n'était à l'origine qu'une simple surcouche autour de Werkzeug et Jinja, et est devenu aujourd'hui l'un des frameworks web les plus populaires de la communauté Python.
Dépendances principales
Lors de l'installation de Flask, les dépendances suivantes sont installées automatiquement, chacune remplissant son propre rôle :
| Bibliothèques de dépendances | Fonction | Quand entrez-vous en contact avec lui |
|---|---|---|
| Werkzeug | Boîte à outils WSGI, responsable de l'analyse des requêtes HTTP, de l'encapsulation des réponses et de la mise en correspondance des routes URL | Lors du traitement des requêtes et du renvoi des réponses, c'est Werkzeug qui œuvre en arrière-plan. |
| Jinja2 | Moteur de template, responsable du rendu des données dans des pages HTML | Utilisationrender_template()Lors de la génération de pages dynamiques |
| Clic | Framework d'outils en ligne de commande, fournissantflaskcommandes de terminal | Exécuterflask run, lors de la personnalisation des commandes CLI |
| itsdangerous | Bibliothèque de signature de données, garantissant que l'intégrité des données n'est pas altérée | Vérification de signature des cookies de session. |
| blinker | Mécanisme de signal, permettant de déclencher des callbacks lorsque des événements spécifiques se produisent | Vous voulez exécuter une logique personnalisée au début/à la fin d'une requête |
Compréhension et mémorisation: Considérez Flask comme une voiture, Werkzeug est le moteur (la puissance centrale), Jinja2 est l'intérieur (la partie que les utilisateurs voient), Click est le volant (le moyen de le contrôler), itsdangerous est la ceinture de sécurité (garantie de sécurité).
La philosophie de conception de Flask
Les deux concepts fondamentaux de Flask déterminent la manière dont il est utilisé.
Micro-framework, pas micro en termes de capacités
Le cœur de Flask est très minimal, mais grâce à son riche écosystème d'extensions, il peut répondre à presque tous les besoins.
Il ne vous force pas à utiliser une base de données, une bibliothèque de formulaires ou une structure de projet spécifiques — les développeurs choisissent eux-mêmes les outils les plus adaptés.
Cette conception signifie : les petits projets ne sont pas alourdis par le framework, et les grands projets peuvent être assemblés selon les besoins.
L'explicite vaut mieux que l'implicite
Contrairement à certains frameworks « tout-en-un », Flask ne fait pas secrètement beaucoup de choses pour vous.
Chaque fonctionnalité nécessite que vous l'introduisiez et la configuriez explicitement. Cela peut demander d'écrire quelques lignes de plus lors de l'apprentissage, mais en échange, vous obtenez un contrôle total sur le projet.
Si vous avez déjà utilisé Django, vous pourriez avoir l'impression que Flask « vous oblige à tout faire vous-même ». C'est précisément l'intention de conception de Flask : vous permettre de savoir clairement d'où vient chaque fonctionnalité.
Fonctionnalités de Flask
Léger et concis: Flask est un microframework qui fournit les fonctionnalités les plus élémentaires et n'impose l'utilisation d'aucun outil ni d'aucune bibliothèque spécifique. Son cœur est simple et flexible, ce qui permet aux développeurs d'ajouter des fonctionnalités selon leurs besoins.
Flexibilité: Flask fournit une structure de framework de base sans organisation de projet ni composants obligatoires ; les développeurs peuvent personnaliser selon leurs besoins.
Extensibilité: La conception de Flask vous permet d'ajouter des fonctionnalités via des plugins et des extensions. De nombreuses fonctionnalités courantes, telles que la gestion de formulaires, l'interaction avec la base de données et l'authentification des utilisateurs, peuvent être mises en œuvre via des extensions fournies par la communauté.
Serveur de développement intégré: Flask est fourni avec un serveur de développement intégré, ce qui facilite le débogage et les tests en local.
Prise en charge de RESTful: Flask prend en charge le développement d'API RESTful, ce qui le rend adapté à la création de services et d'applications web modernes.
Si vous avez déjà utilisé Django, vous pourriez avoir l'impression que Flask « vous oblige à tout faire vous-même ». C'est précisément l'intention de conception de Flask : vous permettre de savoir clairement d'où vient chaque fonctionnalité et d'avoir un contrôle total sur le projet.
Cas d'utilisation de Flask
Petits projets: Pour les petits projets personnels ou les projets de start-up, la simplicité et la flexibilité de Flask permettent un démarrage et une itération rapides.
Développement de prototypes: Aux premiers stades du développement produit, Flask peut être utilisé pour créer rapidement des prototypes, valider des concepts et des interfaces utilisateur.
Microservices: Dans une architecture de microservices, Flask peut être utilisé pour créer des composants de service indépendants et légers.
Développement d'API: Flask est très adapté au développement d'API RESTful, car son système de routage est simple et clair, ce qui facilite la définition des points de terminaison d'API.
Éducation et apprentissage: En raison de sa facilité d'utilisation, Flask est un excellent outil pour apprendre le développement web et la programmation Python.
Outils internes: Flask peut être utilisé pour développer des outils ou tableaux de bord internes à l'entreprise, qui ne nécessitent généralement pas d'interfaces utilisateur complexes.
Plugins ou extensions: Flask peut être utilisé comme plugin ou extension pour d'autres grands frameworks, fournissant des fonctionnalités spécifiques.
Applications web personnalisées: Pour les applications web qui nécessitent un haut degré de personnalisation, Flask offre suffisamment de flexibilité pour répondre à des besoins spécifiques.
Visualisation de données: Flask peut être combiné avec des bibliothèques de visualisation de données (telles que Bokeh ou Plotly) pour créer des applications web de visualisation de données interactives.
Calcul scientifique et analyse de données: Flask peut être combiné avec des bibliothèques de calcul scientifique (telles que NumPy, Pandas) pour développer des applications web d'analyse de données et de calcul scientifique.
CMS léger: Flask peut être utilisé pour créer des systèmes de gestion de contenu légers, en particulier lorsqu'une personnalisation élevée est requise.
Extraction web: Flask peut être utilisé comme backend de projets de web scraping, gérant l'extraction de données et les requêtes API.
Composants de Flask
/Users/tianqixin/example-test/example-article/2026-05-13/images/flask-architecture.svgInstance d'application Flask: Le cœur de Flask est l'instance d'application ; l'application est initialisée en créant un objet Flask.
Routes et fonctions de vue: Le routage associe les URL à des fonctions de vue, qui traitent les requêtes et renvoient des réponses.
Système de templates: Flask utilise le moteur de templates Jinja2 pour rendre les pages HTML, en insérant dynamiquement des données dans les pages.
Requête et réponseFlask traite les requêtes HTTP et génère des réponses, prenant en charge plusieurs méthodes HTTP (telles que GET, POST).
Panorama de la pile technologique
La figure ci-dessous montre la structure en couches typique d'une application Flask, vous aidant à comprendre la position de chaque composant dans une perspective globale :