Gestion de la configuration dans Flask

FlaskFlaskBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous allez apprendre à gérer la configuration dans une application Flask. La configuration vous permet de modifier les paramètres de votre application selon différents environnements, comme basculer le mode de débogage, définir des clés secrètes et d'autres variables spécifiques à l'environnement.

Note : Vous devez créer le fichier de code vous-même et l'exécuter dans l'environnement. Vous pouvez prévisualiser l'état du service Flask sur Web 5000.

Créer une application Flask

Tout d'abord, créons une application Flask de base. Créez un fichier appelé app.py et ajoutez le code suivant :

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, Flask!'

Pour exécuter l'application, exécutez la commande suivante dans votre terminal :

python app.py

Ouvrez votre navigateur web et accédez à http://localhost:5000 pour voir le message "Hello, Flask!".

Configuration de base

Maintenant, ajoutons quelques configurations de base à notre application Flask. Dans le même fichier app.py, ajoutez le code suivant :

app.config['DEBUG'] = True
app.config['SECRET_KEY'] = 'mysecretkey'

La configuration DEBUG active le mode de débogage, qui fournit des messages d'erreur utiles pendant le développement. La configuration SECRET_KEY est utilisée pour signer de manière sécurisée les cookies de session et d'autres besoins liés à la sécurité.

Pour accéder aux valeurs de configuration, vous pouvez utiliser le dictionnaire app.config. Par exemple, pour afficher la valeur de la SECRET_KEY, ajoutez le code suivant à la route hello :

@app.route('/')
def hello():
    secret_key = app.config['SECRET_KEY']
    return f'Hello, Flask! Secret Key: {secret_key}'

Redémarrez l'application Flask et accédez à http://localhost:5000 pour voir le message mis à jour avec la clé secrète.

Configuration à partir de fichiers

Le codage direct des valeurs de configuration dans le code n'est pas idéal, en particulier pour les informations sensibles. Flask propose un moyen de charger la configuration à partir de fichiers séparés. Créez un nouveau fichier appelé config.py et ajoutez le code suivant :

DEBUG = False
SECRET_KEY ='myothersecretkey'

Dans le fichier app.py, remplacez le code de configuration précédent par le suivant :

app.config.from_object('config')

La méthode from_object charge la configuration à partir du module config. Maintenant, les valeurs de DEBUG et SECRET_KEY seront chargées à partir du fichier config.py.

Redémarrez l'application Flask et accédez à http://localhost:5000 pour voir le message mis à jour avec les nouvelles valeurs de configuration.

Configuration basée sur l'environnement

Il est courant d'avoir des configurations différentes pour différents environnements, tels que le développement, la production et les tests. Flask vous permet de basculer entre les configurations en fonction des variables d'environnement. Créez un nouveau fichier appelé config_dev.py et ajoutez le code suivant :

DEBUG = True
SECRET_KEY = 'devsecretkey'

Créez un autre fichier appelé config_prod.py avec le code suivant :

DEBUG = False
SECRET_KEY = 'prodsecretkey'

Dans le fichier app.py, remplacez le code de configuration précédent par le suivant :

import os

if os.environ.get('FLASK_ENV') == 'production':
    app.config.from_object('config_prod')
else:
    app.config.from_object('config_dev')

La variable d'environnement FLASK_ENV est utilisée pour déterminer l'environnement. Si elle est définie sur 'production', la configuration de production sera chargée ; sinon, la configuration de développement sera chargée.

Définissez la variable d'environnement FLASK_ENV sur 'production' et redémarrez l'application Flask. Accédez à http://localhost:5000 pour voir le message mis à jour avec les valeurs de configuration de production.

Dossier d'instance

Flask fournit un dossier d'instance pour stocker les fichiers de configuration spécifiques à un déploiement particulier. Cela vous permet de séparer les configurations spécifiques au déploiement du reste de votre code. Par défaut, Flask utilise un dossier nommé instance dans le même répertoire que votre application.

Créez un nouveau dossier appelé instance dans le même répertoire que votre fichier app.py. Dans le dossier instance, créez un fichier appelé config.cfg et ajoutez le code suivant :

DEBUG = True
SECRET_KEY = 'instancekey'

Dans le fichier app.py, ajoutez le code suivant avant le code de configuration :

app.instance_path = os.path.abspath(os.path.dirname(__file__))
app.config.from_pyfile('config.cfg')

La variable instance_path est définie sur le chemin absolu du dossier instance. La méthode from_pyfile charge la configuration à partir du fichier config.cfg dans le dossier d'instance.

Redémarrez l'application Flask et accédez à http://localhost:5000 pour voir le message mis à jour avec les valeurs de configuration de l'instance.

Récapitulatif

Dans ce laboratoire, vous avez appris à gérer la configuration dans une application Flask. Vous avez appris à définir des valeurs de configuration de base, à charger la configuration à partir de fichiers, à basculer entre les configurations en fonction des variables d'environnement et à utiliser un dossier d'instance pour les configurations spécifiques au déploiement. La configuration est un aspect important de la construction d'applications Flask robustes et flexibles.