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": "..."}
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": "..."}