From c58e00a681b25b6ec586fab456c59b66d610c888 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Mon, 25 Apr 2022 16:28:23 +0300 Subject: [PATCH 1/6] =?UTF-8?q?=D0=92=D1=8B=D0=BD=D0=B5=D1=81=20=D0=BD?= =?UTF-8?q?=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B9=D0=BA=D0=B8=20=D0=BD=D0=B0?= =?UTF-8?q?=D1=80=D1=83=D0=B6=D1=83,=20=D0=BD=D0=B0=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=BE=D0=B8=D0=BB=20=D0=BF=D0=BE=D0=B4=D0=BA=D0=BB=D1=8E=D1=87?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BA=20=D0=B1=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blog/blog/settings.py | 170 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 162 insertions(+), 8 deletions(-) diff --git a/blog/blog/settings.py b/blog/blog/settings.py index eb1af4a..945a639 100644 --- a/blog/blog/settings.py +++ b/blog/blog/settings.py @@ -12,21 +12,165 @@ https://docs.djangoproject.com/en/4.0/ref/settings/ from pathlib import Path import os +import environ -# Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent + +environ.Env.read_env(os.path.join(BASE_DIR, ".env")) +env = environ.Env( + # set casting, default value + DEBUG=(bool, False), + DEVELOPMENT_MODE=(bool, False), +) + +# Build paths inside the project like this: BASE_DIR / 'subdir'. + +PROJECT_ROOT = os.path.dirname(__file__) + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = env("SECRET_KEY") + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = env("DEBUG") +DEVELOPMENT_MODE = env("DEVELOPMENT_MODE") +ALLOWED_HOSTS = ["127.0.0.1"] + + +# Application definition + +INSTALLED_APPS = [ + "django.contrib.admin", + "django.contrib.auth", + "django.contrib.contenttypes", + "django.contrib.sessions", + "django.contrib.messages", + "django.contrib.staticfiles", + "posts.apps.PostConfig", + "mainpage.apps.MainpageConfig", + "comments.apps.CommentsConfig", +] + +MIDDLEWARE = [ + "django.middleware.security.SecurityMiddleware", + "django.contrib.sessions.middleware.SessionMiddleware", + "django.middleware.common.CommonMiddleware", + "django.middleware.csrf.CsrfViewMiddleware", + "django.contrib.auth.middleware.AuthenticationMiddleware", + "django.contrib.messages.middleware.MessageMiddleware", + "django.middleware.clickjacking.XFrameOptionsMiddleware", +] + +ROOT_URLCONF = "blog.urls" + +TEMPLATES = [ + { + "BACKEND": "django.template.backends.django.DjangoTemplates", + "DIRS": [os.path.join(BASE_DIR, "templates")], + "APP_DIRS": True, + "OPTIONS": { + "context_processors": [ + "django.template.context_processors.debug", + "django.template.context_processors.request", + "django.contrib.auth.context_processors.auth", + "django.contrib.messages.context_processors.messages", + ], + }, + }, +] + +WSGI_APPLICATION = "blog.wsgi.application" + + +# Database +# https://docs.djangoproject.com/en/4.0/ref/settings/#databases + +if DEVELOPMENT_MODE=(bool, False), +) + +# Build paths inside the project like this: BASE_DIR / 'subdir'. + PROJECT_ROOT = os.path.dirname(__file__) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = "django-insecure-+-=x#$t4ympabt6#3#k=5t2w60%uiz7l6une62r+i6@sw9jds(" +SECRET_KEY = env("SECRET_KEY") # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True +DEBUG = env("DEBUG") +DEVELOPMENT_MODE = env("DEVELOPMENT_MODE") +ALLOWED_HOSTS = ["127.0.0.1"] + + +# Application definition + +INSTALLED_APPS = [ + "django.contrib.admin", + "django.contrib.auth", + "django.contrib.contenttypes", + "django.contrib.sessions", + "django.contrib.messages", + "django.contrib.staticfiles", + "posts.apps.PostConfig", + "mainpage.apps.MainpageConfig", + "comments.apps.CommentsConfig", +] + +MIDDLEWARE = [ + "django.middleware.security.SecurityMiddleware", + "django.contrib.sessions.middleware.SessionMiddleware", + "django.middleware.common.CommonMiddleware", + "django.middleware.csrf.CsrfViewMiddleware", + "django.contrib.auth.middleware.AuthenticationMiddleware", + "django.contrib.messages.middleware.MessageMiddleware", + "django.middleware.clickjacking.XFrameOptionsMiddleware", +] + +ROOT_URLCONF = "blog.urls" + +TEMPLATES = [ + { + "BACKEND": "django.template.backends.django.DjangoTemplates", + "DIRS": [os.path.join(BASE_DIR, "templates")], + "APP_DIRS": True, + "OPTIONS": { + "context_processors": [ + "django.template.context_processors.debug", + "django.template.context_processors.request", + "django.contrib.auth.context_processors.auth", + "django.contrib.messages.context_processors.messages", + ], + }, + }, +] + +WSGI_APPLICATION = "blog.wsgi.application" + -ALLOWED_HOSTS = [] +# Database +# https://docs.djangoproject.com/en/4.0/ref/settings/#databases + +if DEVELOPMENT_MODE=(bool, False), +) + +# Build paths inside the project like this: BASE_DIR / 'subdir'. + +PROJECT_ROOT = os.path.dirname(__file__) + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = env("SECRET_KEY") + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = env("DEBUG") +DEVELOPMENT_MODE = env("DEVELOPMENT_MODE") +ALLOWED_HOSTS = ["127.0.0.1"] # Application definition @@ -77,10 +221,20 @@ WSGI_APPLICATION = "blog.wsgi.application" # Database # https://docs.djangoproject.com/en/4.0/ref/settings/#databases -DATABASES = { +if DEVELOPMENT_MODE: + DATABASES = { + "default": { + "ENGINE": "django.db.backends.sqlite3", + "NAME": os.path.join(BASE_DIR, "db.sqlite3"), + } + } +else: + DATABASES = { "default": { - "ENGINE": "django.db.backends.sqlite3", - "NAME": BASE_DIR / "db.sqlite3", + "ENGINE": "django.db.backends.postgresql", + "OPTIONS": { + "service": "django_test", + } } } @@ -123,7 +277,7 @@ STATIC_URL = "static/" # для того чтобы использовать общие статические файлы STATICFILES_DIRS = [ - BASE_DIR / "static", + os.path.join(BASE_DIR, "static"), ] # Default primary key field type # https://docs.djangoproject.com/en/4.0/ref/settings/#default-auto-field From 88a4f93104781c1ebe6e61c4ca0fd9f4f8b52f53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Mon, 25 Apr 2022 16:28:59 +0300 Subject: [PATCH 2/6] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D1=84=D0=B0=D0=B9=D0=BB=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81?= =?UTF-8?q?=D0=B8=D0=BC=D0=BE=D1=81=D1=82=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- req.txt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 req.txt diff --git a/req.txt b/req.txt new file mode 100644 index 0000000..a164a51 --- /dev/null +++ b/req.txt @@ -0,0 +1,6 @@ +asgiref==3.5.0 +Django==4.0.3 +django-environ==0.8.1 +gunicorn==20.1.0 +Pillow==9.1.0 +sqlparse==0.4.2 From 9c5a34838164a9d4cc30ab2f06d8126abb6f3718 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Mon, 25 Apr 2022 16:41:20 +0300 Subject: [PATCH 3/6] =?UTF-8?q?=D0=91=D0=B0=D0=B3=D0=BE=D1=84=D0=B8=D0=BA?= =?UTF-8?q?=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Половина конфига продублировалась, исправил. --- blog/blog/settings.py | 146 ++---------------------------------------- 1 file changed, 5 insertions(+), 141 deletions(-) diff --git a/blog/blog/settings.py b/blog/blog/settings.py index 945a639..cd68fcf 100644 --- a/blog/blog/settings.py +++ b/blog/blog/settings.py @@ -86,141 +86,6 @@ WSGI_APPLICATION = "blog.wsgi.application" # Database # https://docs.djangoproject.com/en/4.0/ref/settings/#databases - -if DEVELOPMENT_MODE=(bool, False), -) - -# Build paths inside the project like this: BASE_DIR / 'subdir'. - -PROJECT_ROOT = os.path.dirname(__file__) - -# Quick-start development settings - unsuitable for production -# See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/ - -# SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = env("SECRET_KEY") - -# SECURITY WARNING: don't run with debug turned on in production! -DEBUG = env("DEBUG") -DEVELOPMENT_MODE = env("DEVELOPMENT_MODE") -ALLOWED_HOSTS = ["127.0.0.1"] - - -# Application definition - -INSTALLED_APPS = [ - "django.contrib.admin", - "django.contrib.auth", - "django.contrib.contenttypes", - "django.contrib.sessions", - "django.contrib.messages", - "django.contrib.staticfiles", - "posts.apps.PostConfig", - "mainpage.apps.MainpageConfig", - "comments.apps.CommentsConfig", -] - -MIDDLEWARE = [ - "django.middleware.security.SecurityMiddleware", - "django.contrib.sessions.middleware.SessionMiddleware", - "django.middleware.common.CommonMiddleware", - "django.middleware.csrf.CsrfViewMiddleware", - "django.contrib.auth.middleware.AuthenticationMiddleware", - "django.contrib.messages.middleware.MessageMiddleware", - "django.middleware.clickjacking.XFrameOptionsMiddleware", -] - -ROOT_URLCONF = "blog.urls" - -TEMPLATES = [ - { - "BACKEND": "django.template.backends.django.DjangoTemplates", - "DIRS": [os.path.join(BASE_DIR, "templates")], - "APP_DIRS": True, - "OPTIONS": { - "context_processors": [ - "django.template.context_processors.debug", - "django.template.context_processors.request", - "django.contrib.auth.context_processors.auth", - "django.contrib.messages.context_processors.messages", - ], - }, - }, -] - -WSGI_APPLICATION = "blog.wsgi.application" - - -# Database -# https://docs.djangoproject.com/en/4.0/ref/settings/#databases - -if DEVELOPMENT_MODE=(bool, False), -) - -# Build paths inside the project like this: BASE_DIR / 'subdir'. - -PROJECT_ROOT = os.path.dirname(__file__) - -# Quick-start development settings - unsuitable for production -# See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/ - -# SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = env("SECRET_KEY") - -# SECURITY WARNING: don't run with debug turned on in production! -DEBUG = env("DEBUG") -DEVELOPMENT_MODE = env("DEVELOPMENT_MODE") -ALLOWED_HOSTS = ["127.0.0.1"] - - -# Application definition - -INSTALLED_APPS = [ - "django.contrib.admin", - "django.contrib.auth", - "django.contrib.contenttypes", - "django.contrib.sessions", - "django.contrib.messages", - "django.contrib.staticfiles", - "posts.apps.PostConfig", - "mainpage.apps.MainpageConfig", - "comments.apps.CommentsConfig", -] - -MIDDLEWARE = [ - "django.middleware.security.SecurityMiddleware", - "django.contrib.sessions.middleware.SessionMiddleware", - "django.middleware.common.CommonMiddleware", - "django.middleware.csrf.CsrfViewMiddleware", - "django.contrib.auth.middleware.AuthenticationMiddleware", - "django.contrib.messages.middleware.MessageMiddleware", - "django.middleware.clickjacking.XFrameOptionsMiddleware", -] - -ROOT_URLCONF = "blog.urls" - -TEMPLATES = [ - { - "BACKEND": "django.template.backends.django.DjangoTemplates", - "DIRS": [os.path.join(BASE_DIR, "templates")], - "APP_DIRS": True, - "OPTIONS": { - "context_processors": [ - "django.template.context_processors.debug", - "django.template.context_processors.request", - "django.contrib.auth.context_processors.auth", - "django.contrib.messages.context_processors.messages", - ], - }, - }, -] - -WSGI_APPLICATION = "blog.wsgi.application" - - -# Database -# https://docs.djangoproject.com/en/4.0/ref/settings/#databases - if DEVELOPMENT_MODE: DATABASES = { "default": { @@ -230,14 +95,13 @@ if DEVELOPMENT_MODE: } else: DATABASES = { - "default": { - "ENGINE": "django.db.backends.postgresql", - "OPTIONS": { - "service": "django_test", + "default": { + "ENGINE": "django.db.backends.postgresql", + "OPTIONS": { + "service": "django_test", + }, } } -} - # Password validation # https://docs.djangoproject.com/en/4.0/ref/settings/#auth-password-validators From fcfc2981cc5c23ba1e1fa87ff78fa0dd9b6e26fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Tue, 26 Apr 2022 15:31:38 +0300 Subject: [PATCH 4/6] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20=D0=BE=D0=BF=D1=86=D0=B8=D1=8E=20STATIC=5FROOT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Проверка на использование опции только в проде. --- blog/blog/settings.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/blog/blog/settings.py b/blog/blog/settings.py index cd68fcf..e05a47c 100644 --- a/blog/blog/settings.py +++ b/blog/blog/settings.py @@ -139,6 +139,9 @@ USE_TZ = True STATIC_URL = "static/" +if not DEVELOPMENT_MODE: + STATIC_ROOT = env("STATIC_ROOT") + # для того чтобы использовать общие статические файлы STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), From 34ad9df7c298ac0a0ea62802dc56aa70ef7d145b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Tue, 26 Apr 2022 15:56:52 +0300 Subject: [PATCH 5/6] =?UTF-8?q?=D0=92=D0=B5=D1=80=D0=BD=D1=83=D1=82=D1=8C?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D1=8C=20psycopg2=20=D0=B4=D0=BB=D1=8F=20postgres?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- req.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/req.txt b/req.txt index a164a51..21c4beb 100644 --- a/req.txt +++ b/req.txt @@ -3,4 +3,5 @@ Django==4.0.3 django-environ==0.8.1 gunicorn==20.1.0 Pillow==9.1.0 +psycopg2-binary==2.9.3 sqlparse==0.4.2 From 7839b9c12a2f0a85e0739053479aafede0b8ac1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Tue, 26 Apr 2022 16:01:42 +0300 Subject: [PATCH 6/6] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20CSRF=5FTRUSTED=5FORIGINS=20=D1=81=20=D0=BF=D1=80=D0=B8?= =?UTF-8?q?=D0=B2=D1=8F=D0=B7=D0=BA=D0=BE=D0=B9=20=D0=BA=20=D0=BF=D0=BE?= =?UTF-8?q?=D1=80=D1=82=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blog/blog/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/blog/settings.py b/blog/blog/settings.py index e05a47c..96e0d21 100644 --- a/blog/blog/settings.py +++ b/blog/blog/settings.py @@ -37,7 +37,7 @@ SECRET_KEY = env("SECRET_KEY") DEBUG = env("DEBUG") DEVELOPMENT_MODE = env("DEVELOPMENT_MODE") ALLOWED_HOSTS = ["127.0.0.1"] - +CSRF_TRUSTED_ORIGINS = ["http://127.0.0.1:50505", "127.0.0.1:50505"] # Application definition