From 59a3bff1733bb04343bc262444d8e2789d5e62aa Mon Sep 17 00:00:00 2001 From: Luca Date: Sun, 15 Sep 2024 17:36:57 +0200 Subject: [PATCH] feat: load settings from env --- .env.example | 9 +++++++++ lelcsc/settings.py | 22 ++++++++++++++-------- 2 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 .env.example diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..3c93320 --- /dev/null +++ b/.env.example @@ -0,0 +1,9 @@ +ALLOWED_HOSTS=.localhost,127.0.0.1,[::1] + +DATABASE_URL= + +DEBUG=False + +SECRET_KEY= + +TIME_ZONE=UTC diff --git a/lelcsc/settings.py b/lelcsc/settings.py index 5fa307a..90f9605 100644 --- a/lelcsc/settings.py +++ b/lelcsc/settings.py @@ -12,20 +12,25 @@ https://docs.djangoproject.com/en/5.1/ref/settings/ from pathlib import Path +from environ import Env + +env = Env(DEBUG=(bool, False)) + # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent +Env.read_env(BASE_DIR / ".env") # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/5.1/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = "django-insecure-ed5#_cecl9g_7c%c@!v7#0bz)8y(nscc80%z%b^sm&rw1!%m+j" +SECRET_KEY = env("SECRET_KEY") # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True +DEBUG = env("DEBUG") -ALLOWED_HOSTS = [] +ALLOWED_HOSTS = env.list("ALLOWED_HOSTS") # Application definition @@ -79,10 +84,11 @@ WSGI_APPLICATION = "lelcsc.wsgi.application" # https://docs.djangoproject.com/en/5.1/ref/settings/#databases DATABASES = { - "default": { - "ENGINE": "django.db.backends.sqlite3", - "NAME": BASE_DIR / "db.sqlite3", - } + "default": ( + env.db("DATABASE_URL") + if env("DATABASE_URL") + else {"ENGINE": "django.db.backends.sqlite3", "NAME": BASE_DIR / "db.sqlite3"} + ) } @@ -110,7 +116,7 @@ AUTH_PASSWORD_VALIDATORS = [ LANGUAGE_CODE = "en-us" -TIME_ZONE = "UTC" +TIME_ZONE = env("TIME_ZONE") USE_I18N = True