Aller au contenu principal

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 à :

  1. déplacer l'intitulé de la tâche dans la colonne « In progress »\
  2. 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 le localhost 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.