Lors de l'implémentation d'une application, la gestion des variables d'environnement est un peu gênante, n'est-ce pas?
Lors de l'implémentation en Python, vous pouvez utiliser une bibliothèque appelée pydantic pour définir les valeurs par défaut, transtyper en type int ou définir des valeurs à partir de .env
. Vous pouvez facilement implémenter un traitement tel que la lecture. Dans cet article, je présenterai ces exemples de codes.
Soit dit en passant, pydantic n'est pas une bibliothèque qui lit uniquement les variables d'environnement, mais une bibliothèque qui vous permet de définir des classes à l'aide d'annotations de type. Par exemple, vous pouvez convertir et valider des données au format json en classes. Si vous souhaitez en savoir plus sur les autres fonctionnalités, veuillez lire l'article suivant.
Supposons que les variables d'environnement suivantes soient définies:
#format bash
export REDIS_HOST_NAME=localhost
export REDIS_PORT=6379
Si vous utilisez pydantic, vous pouvez le lire avec le code suivant.
from pydantic import BaseSettings
class Settings(BaseSettings):
redis_host_name: str
redis_port: int
settings = Settings()
print(settings.redis_host_name)
# => localhost
print(settings.redis_port)
# => 6379
print(type(settings.redis_port))
# => <class 'int'>
Si la variable d'environnement n'est pas définie ou si le transtypage échoue, une erreur de validation sera émise.
pydantic.error_wrappers.ValidationError: 1 validation error for Settings
redis_port
value is not a valid integer (type=type_error.integer)
Pendant le développement, vous pouvez utiliser un format de fichier appelé .env
pour simplifier la définition des variables d'environnement. Ceci est un article sur node.js, mais je pense que c'est facile à comprendre.
Utilisez le fichier .env au lieu de la variable d'environnement (dotenv)
Tout d'abord, vous devez également installer python-dotenv avec pip install python-dotenv
ou pip install pydantic [dotenv]
.
Étant donné le fichier .env
suivant
.env
REDIS_HOST_NAME=localhost
REDIS_PORT=6379
Vous pouvez le charger avec un code comme celui-ci:
from pydantic import BaseSettings
class Settings(BaseSettings):
redis_host_name: str
redis_port: int
class Config:
env_file = '.env'
settings = Settings()
Avec cela, je pense que nous avons introduit des fonctions utiles liées aux variables d'environnement qui sont souvent utilisées dans le développement quotidien. Si vous souhaitez en savoir plus, veuillez lire l'article correspondant dans le document officiel.
Settings management - pydantic
Recommended Posts