• 8 hours
  • Medium

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 2/18/22

Installez Flask

L'objectif de ce chapitre est de configurer notre projet avec Flask. Commençons par l'installer !

Installez votre projet Flask

Flask est un module, son installation est donc assez standard.

Commencez par créer un environnement virtuel dans lequel vous installerez le module  flask avec pip.

$ virtualenv env -p python3
$ . env/bin/activate
(env) $ pip install flask

Maintenant, créez un fichier views.py et collez le code suivant :

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return "Hello world !"

if __name__ == "__main__":
    app.run()

Afin de vérifier que Flask fonctionne, exécutez le script suivant :

$ python views.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Python vous informe que le serveur est lancé ! Il attend les requêtes. Ouvrez un navigateur et entrez dans le champ des adresses  http://127.0.0.1:5000/. Vous verrez "Hello world !" en haut à gauche de votre page. Bravo, tout fonctionne ! 

Organisez votre projet

Et maintenant quoi ? C'est bien beau mais ce ne serait pas plus utile d'afficher le contenu de la page index.html?

Nous y venons. Avant de faire cela, nous devons organiser notre projet un peu différemment.

Flask, contrairement à d'autres frameworks, n'impose pas de structure. Vous pouvez tout à fait développer une application entière sur un seul et même fichier. La liberté, la vraie ! Mais encore une fois, ce n'est pas parce que vous pouvez le faire que vous devez le faire. Suivre certaines conventions nous sera très utile par la suite. Les voici :

  • les feuilles de style, scripts, images et autres éléments qui ne seront jamais générés dynamiquement doivent être dans le dossier static,

  • les fichiers HTML doivent être dans le dossier templates,

  • les tests doivent être dans le dossier tests,

  • le fichier views.py contient les différentes routes de l'application (nous y reviendrons).

Arrêtez le serveur et créez donc les dossiers suivants : templates et tests.

Normalement, votre dossier de travail devrait actuellement ressembler à ceci :

$ ls  
env         index.html  result.html static      templates   tests       views.py

C'est un peu le bazar, vous ne trouvez pas ? Je vous propose de regrouper les fichiers de notre application Facebook sous un seul et même dossier, fbapp, et de le transformer en paquet. Nous pourrons ainsi, plus tard, créer d'autres applications qui cohabiteront ensemble.

Déplacez tous les fichiers et dossiers (sauf, évidemment, celui de votre environnement virtuel) dans fbapp.

Déplacez index.html et result.html dans le dossier templates car là est leur place.

Puis créez un fichier __init__.py dans fbapp et un fichier run.py à la racine du projet. C'est ce dernier script que nous utiliserons pour lancer le projet.

Ouvrez-le et ajoutez les lignes suivantes :

run.py

#! /usr/bin/env python
from fbapp import app

if __name__ == "__main__":
    app.run(debug=True)

Puisque nous importons app, le fichier __init__.py doit contenir cet objet. Ouvrez-le et ajoutez les lignes suivantes :

from flask import Flask
from .views import app

Parfait ! Si vous lancez le script run.py, vous constaterez que tout fonctionne toujours :

$ python run.py
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 150-335-910 

Créez le fichier de configuration

Tout projet web qui grandit est amené à travailler avec des variables que nous utiliserons un peu partout dans le projet. Par exemple, le chiffre donné par Facebook pour identifier notre application ou l'emplacement de la base de données. Par convention, ces variables sont dans le fichier config.py.

Créons-le tout de suite ! Puis ouvrons-le pour ajouter les variables.

# To generate a new secret key:
# >>> import random, string
# >>> "".join([random.choice(string.printable) for _ in range(24)])
SECRET_KEY = "#d#JCqTTW\nilK\\7m\x0bp#\tj~#H"

FB_APP_ID = 1200420960103822

Qu'est-ce que cette "SECRET_KEY" ? Est-elle obligatoire ?

La "Secret Key", clé secrète en français, permet de générer toutes les données chiffrées. Par exemple, elle permet de générer les cookies. Elle est donc obligatoire ! Il faut également garder cette clé de manière confidentielle.

Copiez le code et collez-le dans config.py. Flask vous permet d'importer toutes les variables en une fois dans votre projet en utilisant la méthode config.from_object(file_name). Ouvrez   views.py   :

views.py

# Config options - Make sure you created a 'config.py' file.
app.config.from_object('config')
# To get one variable, tape app.config['MY_VARIABLE']

Bravo !

Récupérez le code de ce chapitre

Retrouvez le code de ce chapitre à cette adresse.

En résumé

  • Flask est disponible via le gestionnaire de paquets Python, PyPI 

  • Pour voir votre application, Flask vient avec un serveur de développement accessible à l’adresse locale  http://127.0.0.1:5000/

  • Il est recommandé de suivre une structure de projet en séparant les vues, les templates, les tests, les fichiers statiques et les fichiers de configuration

  • SECRET_KEY  est une variable de configuration requise pour gérer les éléments nécessitant du chiffrement (session, cookies)

Maintenant que vous avez installé Flask et organisé votre projet, commençons à ajouter des descriptions grâce à une base de données.

Example of certificate of achievement
Example of certificate of achievement