API de la classe de configuration Flask Config

Config est une sous-classe de dictionnaire utilisée pour gérer tous les éléments de configuration des applications Flask.

Accès viaapp.config, avec prise en charge du chargement de la configuration depuis plusieurs sources.


Méthodes de la classe Config

Méthodes Signature Description
from_pyfile (filename, silent=False) Charger la configuration depuis un fichier Python. Lorsque silent=True, les erreurs de fichier introuvable sont ignorées.
from_object (obj) Charger la configuration depuis un objet (module, classe, chemin d'importation sous forme de chaîne). Seuls les attributs en majuscules sont chargés.
from_envvar (variable_name, silent=False) Charger la configuration depuis un fichier pointé par une variable d'environnement. Équivalent à from_pyfile(os.environ[var]).
from_prefixed_env (prefix="FLASK", *, loads=json.loads) Charger depuis les variables d'environnement. Lit les variables avec le préfixe FLASK_, supprime le préfixe et les définit comme configuration.
from_file (filename, load, silent=False, text=True) Charger depuis des fichiers dans n'importe quel format. "load" est la fonction d'analyse (par exemple, json.load, tomllib.load).
from_mapping (mapping=None, **kwargs) Charger la configuration à partir d'un objet de mappage. Paires clé-valeur **kwargs facultatives. Seules les clés en majuscules sont chargées.
get_namespace (namespace, lowercase=True, trim_namespace=True) Obtenir un sous-ensemble de configuration avec un préfixe spécifié. Par exemple, get_namespace("DB_") récupère toute la configuration de base de données.

Comparaison des méthodes de chargement

Méthodes de chargement Scénarios applicables Exemple
from_pyfile Les fichiers de configuration sont au format Python. app.config.from_pyfile("config.py")
from_object Utilisez des classes ou des modules pour organiser la configuration et distinguer les environnements. app.config.from_object("myapp.config.ProductionConfig")
from_prefixed_env 12-Factor App, configuration par variables d'environnement. app.config.from_prefixed_env()
from_file JSON, TOML et autres formats non-Python app.config.from_file("config.json", load=json.load)
get_namespace Extrayez le sous-ensemble de configuration et transmettez-le au constructeur de la bibliothèque. db_config = app.config.get_namespace("DB_")

Règles de nommage des clés de configuration

Noms des clés de configurationDoivent être entièrement en majusculesIl s'agit d'une convention Flask ; des méthodes telles que from_object, from_mapping et from_prefixed_env ignorent automatiquement les clés en minuscules.


Exemples de code

Exemple

from flask import Flask

app = Flask(__name__)

# Méthode 1 : charger depuis un fichier Python
app.config.from_pyfile("config.py")

# Méthode 2 : Charger depuis les variables d'environnement (lire le préfixe FLASK_)
app.config.from_prefixed_env()

# Méthode 3 : Définir directement
app.config["MY_SETTING"] = "value"

# Méthode 4 : Charger depuis JSON
import json
app.config.from_file("config.json", load=json.load)

# Méthode 5 : Obtenir la configuration d'un espace de noms
# Supposons qu'il existe des configurations telles que DB_HOST, DB_PORT, DB_NAME
db_config = app.config.get_namespace("DB_")
# db_config = {"host": "...", "port": ..., "name": "..."}
autres extensions