Variables d'environnement pour DATABASES de setting
Bonsoir,
Je souhaiterai utiliser mysql pour un mini projet django.
pas de problème pour mettre dans un fichier env les valeurs pour DEBUG et ALLOWED_HOSTS par exemple.
Mais pour DATABASES c'est différent apparemment.
Savez-vous comment faire ?
Merci d'avance
DEBUG = env.bool("DEBUG", False)
ALLOWED_HOSTS = env.list("ALLOWED_HOSTS")
------
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
Salut Gabriel,
tu peux faire comme ceci:
if os.environ.get("ENV_TYPE") == "DEV":
ENGINE = "django.db.backends.sqlite3"
elif os.environ.get("ENV_TYPE") == "PROD":
ENGINE = "django.db.backends.mysql"
DATABASES = {
"default": {
"ENGINE": ENGINE,
"NAME": os.getenv("DB_NAME"),
"USER": os.getenv("DB_USER"),
"PASSWORD": os.getenv("DB_USER_PASSWORD"),
"HOST": os.getenv("DB_HOST"),
"PORT": os.getenv("DB_PORT")
}
}
et dans ton fichier .env de production (sur pythonanywhere par exemple)
SECRET_KEY='%3gpkq(_vkpmy^+#0r34q*rq-547y4&8!jm8jm&jnb=f9#^8-^'
ENV_TYPE=PROD
TOKEN_DAYS_LIFE=1
ALLOWED_HOST='appnamepythonanywhere.com'
DB_NAME=username$tablename
DB_USER=username
DB_USER_PASSWORD=yourPassword
DB_HOST=yourHost
DB_PORT=3306
a ta disposition si ce n'est pas clair.
hello,
non normalement pas besoin mais pour la secret key et l'host je préfère en mettre mais c'est par précaution si jamais ils contiennent des '. Et attention pas d'espace avancer après le "="
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte