Créer l'application de démarrage
Maintenant que vous avez configuré notre environnement de programmation, nous allons commencer à utiliser Flask. Dans cette étape, nous allons créer une petite application Web dans un fichier Python et l'exécuter pour démarrer le serveur, qui affichera certaines informations sur le navigateur.
Avant d'entamer la réalisation de cette nouvelle tâche, veuillez penser à :
- déplacer l'intitulé de la tâche dans la colonne « In progress »\
- créer une nouvelle branche dans Git :
git checkout -b create-app-skeleton
Reprenons notre fichier hello.py
.
Ce fichier hello.py
servira d'exemple minimal de la manière de
traiter les requêtes HTTP. À l'intérieur de ce fichier, vous importerez
l'objet Flask et créerez une fonction qui renvoie une réponse HTTP.
Écrivez le code suivant à l'intérieur de notre fichier hello.py
:
from flask import Flask
app = Flask(__name__)
\@app.route('/')
def hello():
return 'Salut les SIO !'
Dans le bloc de code précédent, vous importez d'abord l'objet Flask
du paquet flask
. Vous l'utilisez ensuite pour créer notre instance
d'application Flask avec le nom app
. Vous passez la variable
spéciale __name__
qui contient le nom du module Python actuel.
Il est utilisé pour indiquer à l'instance où elle se trouve. Vous en
avez besoin car Flask établit certains chemins en coulisses.
Une fois que vous avez créé l'instance de l'application, vous
l'utilisez pour traiter les demandes Web entrantes et envoyer des
réponses à l'utilisateur. \@app.route
est un décorateur qui
transforme une fonction Python ordinaire en une fonction d'affichage
Flask, qui convertit la valeur de retour de la fonction en une réponse
HTTP à afficher par un client HTTP, tel qu'un navigateur Web. Vous
passez la valeur '/'
à \@app.route()
pour indiquer que cette
fonction répondra aux requêtes Web pour l'URL /
, qui est l'URL
principale.
La fonction d'affichage hello()
renvoie la chaîne "Salut les SIO !"
comme réponse.
Enregistrez le fichier.
Pour exécuter notre application Web, vous devez d'abord indiquer à
Flask où trouver l'application (le fichier hello.py
dans notre
cas) avec la variable d'environnement FLASK_APP
:
$env:FLASK_APP='hello'
Ensuite, exécutez-la en mode développement avec la variable
d'environnement FLASK_ENV
:
$env:FLASK_ENV='development'
Pour terminer, exécutez l'application en utilisant la commande flask run
:
flask run
Une fois l'application lancée, la sortie sera quelque chose comme ceci :
La sortie précédente contient plusieurs éléments d'information, tels que :
- Le nom de l'application que vous exécutez.
- L'environnement dans lequel l'application est exécutée.
Debug mode: on
signifie que le débogueur Flask est en cours d'exécution. Ceci est utile lors du développement car il nous donne des messages d'erreur détaillés lorsque les choses tournent mal, ce qui facilite le dépannage.- L'application s'exécute localement sur l'URL
http://127.0.0.1:5000/
,127.0.0.1
est l'IP qui représente lelocalhost
de notre machine et:5000
est le numéro du port.
Ouvrez un navigateur et tapez l'URL http://127.0.0.1:5000/
, vous
recevrez la chaîne de caractères Salut les SIO !
en réponse, cela
confirme que notre application fonctionne correctement.
Attention : Flask utilise un simple serveur Web pour servir notre application dans un environnement de développement, ce qui signifie également que le débogueur Flask est en cours d'exécution pour faciliter la capture des erreurs. Ce serveur de développement ne doit pas être utilisé dans un déploiement de production. Consultez la page des options de déploiement dans la documentation Flask pour plus d'informations.
Pendant que le serveur de développement d'une application Flask est déjà
en cours d'exécution, il n'est pas possible d'exécuter une autre
application Flask avec la même commande flask run
. En effet, flask run
utilise le numéro de port 5000
par défaut, et une fois qu'il
est pris, il devient indisponible pour exécuter une autre application de
sorte que vous recevriez une erreur similaire à la suivante :
Output
OSError: \[Errno 98\] Address already in use
Pour résoudre ce problème, vous pouvez soit arrêter le serveur qui
tourne actuellement via CTRL+C
, puis relancer flask run
, soit,
si vous voulez exécuter les deux en même temps, vous pouvez passer un
numéro de port différent à l'argument -p
; par exemple, pour exécuter
une autre application sur le port 5001
, utilisez la commande
suivante :
flask run -p 5001
Vous disposez maintenant d'une petite application Web Flask.
Vous avez lancé notre application et affiché des informations sur le navigateur Web. Ensuite, nous allons utiliser des fichiers HTML dans notre application.