From 67e3cbe83ce0477da71f1486ca23c6abf3fcd842 Mon Sep 17 00:00:00 2001 From: erjemin Date: Wed, 18 Feb 2026 01:30:18 +0300 Subject: [PATCH] =?UTF-8?q?mod:=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=81=D0=B5=D0=BA?= =?UTF-8?q?=D1=80=D0=B5=D1=82=D0=BE=D0=B2=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7?= =?UTF-8?q?=20.env?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.sample | 14 +++++++ dicquo/dicquo/settings.py | 86 +++++++++++++++------------------------ 2 files changed, 47 insertions(+), 53 deletions(-) create mode 100644 .env.sample diff --git a/.env.sample b/.env.sample new file mode 100644 index 0000000..660b3b4 --- /dev/null +++ b/.env.sample @@ -0,0 +1,14 @@ +# Это пример файла окружения `.env` для настройки проекта Django. Скопируйте его в `.env` и измените значения на свои. + +DEBUG=on +SECRET_KEY=change_me_in_production +ALLOWED_HOSTS=127.0.0.1,localhost +ADMIN_EMAIL=admin@example.com + +# Database (SQLite is default) +# DATABASE_URL=sqlite:///db.sqlite3 + +# Email +# Format: smtp://user:password@host:port +EMAIL_URL=smtp://user:password@smtp.example.com:25 + diff --git a/dicquo/dicquo/settings.py b/dicquo/dicquo/settings.py index 8d18e5a..b04b690 100644 --- a/dicquo/dicquo/settings.py +++ b/dicquo/dicquo/settings.py @@ -1,58 +1,47 @@ # -*- coding: utf-8 -*- """ Django settings for dic-quo project. - -Generated by 'django-admin startproject' using Django 3.1.1. - -For more information on this file, see -https://docs.djangoproject.com/en/3.1/topics/settings/ - -For the full list of settings and their values, see -https://docs.djangoproject.com/en/3.1/ref/settings/ """ -import socket +import environ +import os from pathlib import Path -if socket.gethostname() == 'seremin': - # офисный комп (Windows) - from dicquo.my_secret_dev_office_win import * -elif socket.gethostname() == 'erjemin-home': - # домашний комп (Windows) - from dicquo.my_secret_dev_home_win import * -elif socket.gethostname() in ['m1.N1', 'm1.local', ]: - # домашний комп (MacOS) - from dicquo.my_secret_dev_home_mac import * -elif socket.gethostname() in ['orangepi5', 'vm678195', ]: - # продакшн (боевой) сервер - from dicquo.my_secret_prod import * # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent +env = environ.Env( + # set casting, default value + DEBUG=(bool, False) +) + +# Reading .env file +# BASE_DIR is .../dicquo/ +# Project root (where .env is) is .../dicquo/../ or ../../ from settings.py +# If BASE_DIR is .../dicquo, then .env is at BASE_DIR.parent/.env +environ.Env.read_env(os.path.join(BASE_DIR.parent, '.env')) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = MY_SECRET_KEY +SECRET_KEY = env('SECRET_KEY') -DEBUG = MY_DEBUG +DEBUG = env('DEBUG') -ALLOWED_HOSTS = MY_ALLOWED_HOSTS +ALLOWED_HOSTS = env.list('ALLOWED_HOSTS', default=[]) ######################################### # Настройки сообщений об ошибках когда все упало и т.п. -ADMINS = MY_ADMINS +ADMINS = (('Admin', env('ADMIN_EMAIL', default='admin@example.com')),) ######################################### # настройки для почтового сервера -EMAIL_HOST = MY_EMAIL_HOST # SMTP server -EMAIL_PORT = MY_EMAIL_PORT # для SSL/https -EMAIL_HOST_USER = MY_EMAIL_HOST_USER # login or '' -EMAIL_HOST_PASSWORD = MY_EMAIL_HOST_PASSWORD # password -SERVER_EMAIL = DEFAULT_FROM_EMAIL = EMAIL_HOST_USER -EMAIL_USE_TLS = MY_EMAIL_USE_TLS -EMAIL_FROM = MY_EMAIL_FROM # мейл, от имени которого отправляются письма +EMAIL_CONFIG = env.email_url( + 'EMAIL_URL', default='smtp://user:password@localhost:25') +vars().update(EMAIL_CONFIG) + +SERVER_EMAIL = DEFAULT_FROM_EMAIL = EMAIL_CONFIG['EMAIL_HOST_USER'] EMAIL_SUBJECT_PREFIX = '[DIC-QUO ERR]: ' # префикс для оповещений об ошибках и необработанных исключениях # Application definition @@ -79,6 +68,13 @@ MIDDLEWARE: list[str] = [ ROOT_URLCONF: str = 'dicquo.urls' +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': BASE_DIR.parent / 'database/db.sqlite3', + } +} + TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', @@ -113,7 +109,6 @@ AUTH_PASSWORD_VALIDATORS = [ # https://docs.djangoproject.com/en/3.1/topics/i18n/ LANGUAGE_CODE = 'ru-RU' # <--------- RUSSIAN TIME_ZONE = 'Europe/Moscow' # -# TIME_ZONE = 'America/Los_Angeles' # USE_I18N = True USE_L10N = True USE_TZ = True # учитывать часовой пояс @@ -127,27 +122,12 @@ FIRST_DAY_OF_WEEK = 1 # неделя начинается с понеде STATIC_URL = '/static/' MEDIA_URL = '/media/' -# Настройки для прода.... -TOUCH_RELOAD = MY_TOUCH_RELOAD # дёргаем этот файл, чтобы перегрузить uWSGI +# Using pathlib for cleaner path management +# Adjusted to serve from public/media relative to project root +MEDIA_ROOT = BASE_DIR.parent / 'public/media' +STATIC_ROOT = BASE_DIR.parent / 'public/static' -MEDIA_ROOT = MY_MEDIA_ROOT STATICFILES_DIRS = [ - MY_STATIC_ROOT, + # Add other static dirs here if needed ] -# STATIC_ROOT = MY_STATIC_ROOT -# STATIC_BASE_PATH = MY_STATIC_ROOT - -DATABASES = { - 'default': { - 'ENGINE': "django.db.backends.mysql", - 'HOST': MY_DATABASE_HOST, # Set to "" for localhost. Not used with sqlite3. - 'PORT': MY_DATABASE_PORT, # Set to "" for default. Not used with sqlite3. - 'NAME': MY_DATABASE_NAME, # Not used with sqlite3. - 'USER': MY_DATABASE_USER, # Not used with sqlite3. - 'PASSWORD': MY_DATABASE_PASSWORD, # Not used with sqlite3. - # 'OPTIONS': { 'autocommit': True, } - } -} - -DEFAULT_AUTO_FIELD = 'django.db.models.AutoField' \ No newline at end of file