Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
In Développement Dernière mise à jour : 8 septembre 2023
Partager sur:
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

Python Flask est un microframework permettant de créer des applications Web en Python.

Il s'agit d'un cadre très flexible et personnalisable qui facilite l'apprentissage. En conséquence, il s’agit d’un choix populaire lors de la création de serveurs Web. Cet article présente Python Flask : qu'est-ce que c'est, comment il se compare à d'autres frameworks et comment créer une application de base en Python.

What is Flask?

Flacon Python

Flacon est un framework pour créer des serveurs Web en Python. Contrairement à d’autres frameworks, il n’oblige pas le développeur à se conformer à une structure de répertoires particulière.

De plus, il est sans opinion, vous permettant d'utiliser les outils que vous préférez pour effectuer des actions telles que la connexion à une base de données et la validation des entrées de formulaire.

Comme mentionné, Flask est utilisé pour créer des serveurs Web. Un serveur Web est un logiciel qui répond aux requêtes HTTP avec les données et fichiers appropriés.

Flask vs. Other Frameworks

Cette section comparera brièvement Flask à deux autres frameworks populaires : Django et Fast API. Nous aborderons les avantages et les limites de l'utilisation de Flask par rapport aux autres frameworks.

Flask contre Django

Flask est un micro-framework léger. Il offre aux développeurs simplicité et flexibilité, vous permettant de construire au fur et à mesure. Toutefois, cela signifie que vous devez effectuer beaucoup de travail vous-même.

D’un autre côté, Django est un framework « batteries incluses » qui est livré avec de nombreux outils préconfigurés. Cela vous permet de construire et d’expédier plus rapidement. Cependant, Django n’est pas très flexible et sa courbe d’apprentissage est plus abrupte.

En conséquence, Flask est utilisé pour les projets de petite et moyenne taille, tandis que Django est utilisé pour les projets plus grands et plus complexes.

A lire également: Différences entre Flask et Django

Flacon contre FastAPI

FastAPI est un framework relativement nouveau pour créer des API en Python. C'est rapide et facile à utiliser. Il fournit une surveillance intégrée en tant que fonctionnalité. Cependant, il s’agit d’un nouveau cadre avec un écosystème et une communauté relativement petits. De plus, son utilisation est limitée aux API.

En revanche, Flask est plus polyvalent car il peut être utilisé à la fois pour les API et le rendu de fichiers statiques. C’est léger et relativement facile. Cependant, il est plus lent que FastAPI.

Flask est mieux adapté aux applications Web dans lesquelles vous devez restituer du HTML, tandis que FastAPI doit être utilisé pour créer des API.

A lire également: FastAPI vs Flask : lequel des deux vous convient le mieux ?

How to Create an Application in Flask

Dans cette section, nous allons créer une application Flask simple pour afficher certains HTML et fournir des données via une API. Le but n’est pas de fournir un didacticiel complet sur Flask. L'objectif est plutôt de vous montrer brièvement à quoi ressemblerait la création d'une application Flask.

Pré-requis

Pour suivre ce tutoriel, vous devez comprendre Python 3. De plus, une connaissance de HTTP serait utile, bien que non obligatoire.

Pour créer une application dans Flask, vous devez d'abord installer Python. Si vous avez besoin d'un guide sur la façon de procéder, voici une vidéo pour vous guider :

YouTube vidéo

Créer un environnement virtuel

Tout d’abord, créez un dossier de projet pour l’application. J'exécute mes commandes dans Bash Terminal ; par conséquent, je crée un dossier en utilisant la commande suivante :

mkdir flask-tut

Ensuite, naviguez dans le dossier à l'aide de la commande :

cd flask-tut

Après avoir navigué dans le dossier, créez un environnement virtuel à l'aide de cette commande. Cela garantit que les dépendances que nous installerons n'entrent pas en conflit avec les dépendances d'autres projets.

python3 -m venv venv

Cela devrait créer un venv dossier, que vous pouvez voir avec la commande :

ls
créer un dossier venv

Activer l'environnement virtuel

L'activation d'un environnement virtuel est simple. À l'aide du terminal Bash, saisissez la commande :

source venv/bin/activate

L'invite de votre terminal devrait changer à partir de ceci $ à cette (venv) $.

(venv) $.

Pour plus d'informations, voici un article sur environnements virtuels en Python.

Installer le flacon

Avec un environnement virtuel, nous pouvons procéder à l'installation de Flask. Pour cela, nous utiliserons pip :

pip install Flask

Cela devrait télécharger certains fichiers et installer des dépendances.

dépendances

Servir du HTML

Ensuite, nous pouvons commencer à travailler sur main.py déposer. Ce fichier sera le point d'entrée de l'application.

touch main.py

Après avoir créé le fichier main.py, ouvrez-le avec votre éditeur préféré et ajoutez le code suivant :

from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    return '<h1>Hello from Flask!</h1>'

Dans l'extrait de code ci-dessus, nous avons commencé par importer la classe Flask. Ensuite, nous avons instancié la classe Flask, en passant dans le __name__ variable. Il s'agit d'une variable intégrée stockant le nom du module actuel. Flask en a besoin pour savoir où trouver les fichiers. Nous avons stocké l'instance de Flask dans la variable app.

Ensuite, nous avons créé une fonction appelée index. Cette fonction renvoie le HTML que nous souhaitons afficher à l'utilisateur. Avant la définition de la fonction, nous avons utilisé le @app.route décorateur. Ce décorateur convertit une fonction régulière en fonction de vue Flask. Cela signifie que la valeur de retour de la fonction sera convertie en réponse HTML.

Pour exécuter l'application, nous utilisons la commande :

flask --app main run

L'indicateur –app spécifie où se trouve l'application. Dans ce cas, dans main.py. Le serveur devrait commencer à fonctionner.

serveur en cours d'exécution

Et si vous ouvrez le navigateur sur http://localhost:5000 ou http://127.0.0.1:5000, vous devriez voir un h1 :

sortie de l'hôte local

Écrire tout notre HTML dans notre code Python serait généralement une mauvaise chose. Idéalement, nous voudrions séparer le Python du HTML. La section suivante examinera comment servir des fichiers HTML autonomes.

Servir un fichier HTML

Dans cette section, nous allons écrire le code pour servir un fichier index.html pour notre site Web. Commençons par créer le fichier index.html. Nous allons créer ce fichier dans le dossier des modèles car c'est là que Flask recherche notre modèle HTML.

touch template/index.html

Ensuite, ouvrez le fichier à l'aide de votre éditeur préféré et ajoutez le code suivant :

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Flask Website</title>
  </head>
  <body>
	<h1>Hello from Flask!</h1>
  </body>
</html>

Ensuite, rouvrez le fichier main.py que nous avons créé précédemment. Ajoutez ensuite l'import suivant en haut, juste après l'import Flask :

from flask import render_template

La fonction render_template que nous venons d'importer nous permet de servir des modèles HTML. Pour restituer un fichier HTML, nous modifions la fonction index pour qu'elle ressemble à ceci :

@app.route("/")
def index():
    return render_template('index.html')

Arrêtez le serveur (Ctrl + C) et redémarrez-le à l'aide de la commande suivante :

flask --app main run

Rechargez la fenêtre du navigateur et vous devriez voir ce qui suit.

sortie du navigateur

Dans cet exemple, nous affichons une page HTML statique. Avec Flask, vous pouvez également afficher des modèles en créant des modèles HTML et en fournissant des données. Ces modèles suivent la syntaxe Jinja. Nous n'aborderons pas cela ici par souci de brièveté, mais je relierai quelques bonnes ressources pour apprendre Flask plus tard.

Création d'une route API

L'affichage du contenu HTML est l'une des fonctions des applications Web. L'autre consiste à transmettre des données via une route API. Dans Flask, il est également facile de configurer des routes API. Ajoutez ce code au fichier main.py pour créer une route API sur « /data ».

@app.route('/data')
def data():
    return { "status": "OK", "msg": "Hello from Flask API" }

Si une fonction renvoie un dict ou une liste, la valeur est convertie en JSON et envoyée en réponse. Si vous redémarrez le serveur et ouvrez http://localhost:5000/data, vous devriez voir ce qui suit :

serveur

Resources to Learn Flask

❇️Le Documentation du flacon est excellent pour apprendre. Il est bien structuré, clair et constitue probablement la ressource la plus fiable pour apprendre Flask.

❇️ freeCodeCamp a également une superbe vidéo YouTube sur Flacon. freeCodeCamp est un nom connu pour les ressources d'apprentissage gratuites mais de grande qualité.

❇️ Ceci Cours Udemy est un bon moyen d'apprendre à créer des API de niveau entreprise dans Flask. Il couvre des outils tels que Flask-SQLALchemy et Flask-Smorest.

Conclusion

Cet article était une brève introduction à Python Flask. Nous avons expliqué de quoi il s'agissait, l'avons comparé à d'autres frameworks Web et créé une application simple. Enfin, j'ai lié des ressources pour un apprentissage ultérieur.

Ensuite, consultez comment sécuriser une API Flask REST avec un jeton Web JSON.

  • Anesu Kafesu
    Auteur
    Développeur web full stack et rédacteur technique. En train d'apprendre l'IA.
  • Rashmi Sharma
    Éditeur

    Rashmi a plus de 7 ans d'expertise dans la gestion de contenu, le référencement et la recherche de données, ce qui en fait une professionnelle très expérimentée. Elle a une solide formation académique et a fait son baccalauréat et sa maîtrise en applications informatiques…. lire la suite

Merci à nos commanditaires
Plus de bonnes lectures sur le développement
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation de travail tout-en-un pour vous aider à gérer les projets, les tâches, le travail, les ventes, le CRM, les opérations, workflowset plus encore.
    Essayez Monday
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder