|
@@ -14,13 +14,20 @@ from pathlib import Path
|
|
|
|
|
|
import dj_database_url
|
|
import dj_database_url
|
|
import django_heroku
|
|
import django_heroku
|
|
|
|
+import dotenv
|
|
import psycopg2
|
|
import psycopg2
|
|
|
|
|
|
from UnTube.secrets import SECRETS
|
|
from UnTube.secrets import SECRETS
|
|
|
|
|
|
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
|
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
|
|
|
|
|
-BASE_DIR = Path(__file__).resolve().parent.parent
|
|
|
|
|
|
+PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
+# BASE_DIR = Path(__file__).resolve().parent.parent
|
|
|
|
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
+
|
|
|
|
+dotenv_file = os.path.join(BASE_DIR, ".env")
|
|
|
|
+if os.path.isfile(dotenv_file):
|
|
|
|
+ dotenv.load_dotenv(dotenv_file)
|
|
|
|
|
|
# Quick-start development settings - unsuitable for production
|
|
# Quick-start development settings - unsuitable for production
|
|
# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/
|
|
# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/
|
|
@@ -30,7 +37,7 @@ SECRET_KEY = SECRETS['SECRET_KEY']
|
|
YOUTUBE_V3_API_KEY = SECRETS['YOUTUBE_V3_API_KEY']
|
|
YOUTUBE_V3_API_KEY = SECRETS['YOUTUBE_V3_API_KEY']
|
|
|
|
|
|
# SECURITY WARNING: don't run with debug turned on in production!
|
|
# SECURITY WARNING: don't run with debug turned on in production!
|
|
-DEBUG = False
|
|
|
|
|
|
+DEBUG = True
|
|
|
|
|
|
ALLOWED_HOSTS = ['untube-django.herokuapp.com', '127.0.0.1']
|
|
ALLOWED_HOSTS = ['untube-django.herokuapp.com', '127.0.0.1']
|
|
|
|
|
|
@@ -63,12 +70,15 @@ CRISPY_TEMPLATE_PACK = 'bootstrap4'
|
|
|
|
|
|
MIDDLEWARE = [
|
|
MIDDLEWARE = [
|
|
'django.middleware.security.SecurityMiddleware',
|
|
'django.middleware.security.SecurityMiddleware',
|
|
|
|
+ 'whitenoise.middleware.WhiteNoiseMiddleware',
|
|
|
|
+
|
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
|
'django.middleware.common.CommonMiddleware',
|
|
'django.middleware.common.CommonMiddleware',
|
|
'django.middleware.csrf.CsrfViewMiddleware',
|
|
'django.middleware.csrf.CsrfViewMiddleware',
|
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
|
'django.contrib.messages.middleware.MessageMiddleware',
|
|
'django.contrib.messages.middleware.MessageMiddleware',
|
|
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
|
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
|
|
|
+
|
|
]
|
|
]
|
|
|
|
|
|
ROOT_URLCONF = 'UnTube.urls'
|
|
ROOT_URLCONF = 'UnTube.urls'
|
|
@@ -76,8 +86,8 @@ ROOT_URLCONF = 'UnTube.urls'
|
|
TEMPLATES = [
|
|
TEMPLATES = [
|
|
{
|
|
{
|
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
|
- 'DIRS': [BASE_DIR / 'templates']
|
|
|
|
- ,
|
|
|
|
|
|
+ # 'DIRS': [BASE_DIR / 'templates'],
|
|
|
|
+ 'DIRS': [os.path.join(BASE_DIR, "templates")],
|
|
'APP_DIRS': True,
|
|
'APP_DIRS': True,
|
|
'OPTIONS': {
|
|
'OPTIONS': {
|
|
'context_processors': [
|
|
'context_processors': [
|
|
@@ -120,15 +130,15 @@ WSGI_APPLICATION = 'UnTube.wsgi.application'
|
|
|
|
|
|
# Database
|
|
# Database
|
|
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
|
|
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
|
|
-DATABASES = {
|
|
|
|
- 'default': {
|
|
|
|
- 'ENGINE': 'django.db.backends.sqlite3',
|
|
|
|
- 'NAME': BASE_DIR / 'db.sqlite3',
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
|
|
+#DATABASES = {
|
|
|
|
+# 'default': {
|
|
|
|
+# 'ENGINE': 'django.db.backends.sqlite3',
|
|
|
|
+# 'NAME': BASE_DIR / 'db.sqlite3',
|
|
|
|
+# }
|
|
|
|
+#}
|
|
|
|
|
|
-db_from_env = dj_database_url.config(conn_max_age=600)
|
|
|
|
-DATABASES['default'].update(db_from_env)
|
|
|
|
|
|
+DATABASES = {}
|
|
|
|
+DATABASES['default'] = dj_database_url.config(conn_max_age=600)
|
|
|
|
|
|
# DATABASE_URL = os.environ['DATABASE_URL']
|
|
# DATABASE_URL = os.environ['DATABASE_URL']
|
|
# conn = psycopg2.connect(DATABASE_URL, sslmode='require')
|
|
# conn = psycopg2.connect(DATABASE_URL, sslmode='require')
|
|
@@ -165,20 +175,13 @@ USE_TZ = True
|
|
# Static files (CSS, JavaScript, Images)
|
|
# Static files (CSS, JavaScript, Images)
|
|
# https://docs.djangoproject.com/en/3.2/howto/static-files/
|
|
# https://docs.djangoproject.com/en/3.2/howto/static-files/
|
|
STATIC_URL = '/static/'
|
|
STATIC_URL = '/static/'
|
|
-STATIC_ROOT = os.path.join(BASE_DIR, "static") # location where django collect all static files
|
|
|
|
-# location where you will store your static files
|
|
|
|
-STATICFILES_DIRS = [os.path.join(BASE_DIR, 'apps/main/static')
|
|
|
|
- ]
|
|
|
|
|
|
+STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
|
|
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
|
|
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
|
|
|
|
|
|
-
|
|
|
|
-MEDIA_ROOT = os.path.join(BASE_DIR,'media')
|
|
|
|
-MEDIA_URL = '/media/'
|
|
|
|
-
|
|
|
|
# Default primary key field type
|
|
# Default primary key field type
|
|
# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field
|
|
# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field
|
|
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
|
|
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
|
|
|
|
|
|
-# django_heroku.settings(locals())
|
|
|
|
-# import dj_database_url
|
|
|
|
-# DATABASES['default'] = dj_database_url.config(conn_max_age=600, ssl_require=True)
|
|
|
|
|
|
+django_heroku.settings(locals())
|
|
|
|
+options = DATABASES['default'].get('OPTIONS', {})
|
|
|
|
+options.pop('sslmode', None)
|