Fondamentalement, de nombreux articles d'introduction codent en dur divers paramètres dans le fichier de paramètres, mais il n'est pas bon de penser pratiquement du point de vue de l'exploitation et de la sécurité à coder directement en dur ce que l'on appelle SECRET_KEY et les variables d'environnement. ..
Par conséquent, l'installation d'un module capable d'isoler les paramètres, de le gérer séparément et de le charger à partir de là est un moyen d'éviter le codage en dur.
En Python, il existe un module appelé Python-decouple, je vais donc utiliser settings.py
dans Django comme exemple.
Le projet créé cette fois-ci peut être consulté depuis ici, donc si vous êtes intéressé, s'il vous plaît.
Installer et
$ pip install python-decouple
$ django-admin startproject decoupleproject
Créez un projet.
Puisque vous avez déjà installé Python-decouple, créez un fichier .env
dans le même répertoire que manage.py
.
Et si vous écrivez les informations que vous ne voulez pas coder en dur dans divers fichiers de paramètres dans .env
et que vous les importez dans sttings.py
, vous pouvez basculer entre les environnements, ce qui est très utile.
Par exemple, cette fois
settings.py
from decouple import config
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = config('SECRET_KEY')
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = conig('DEBUG' default=False,cost=bool)
ALLOWED_HOSTS = config('ALLOWED_HOSTS',cost=Csv())
.env
SECRET_KEY = '6@gw!zj8jjwjr%da0g=&1dzmhjbi3p%r@6157##n0oix#&ybv2'
DEBUG = True
ALLOWED_HOSTS = []
En écrivant de cette manière, vous pouvez séparer les informations que vous ne voulez pas que l'on connaisse de l'extérieur.
Il existe d'autres modules qui cachent les informations de connexion de la base de données, je voudrais donc les présenter dans un proche avenir. Je vous remercie pour votre travail acharné.
Recommended Posts