Программа курса:
Настройки проекта
Файл settings.py в Django содержит множество настроек, которые определяют поведение вашего проекта. Разделим их на основные категории и рассмотрим наиболее важные параметры в каждой категории:
1. Базовые настройки проекта:
- BASE_DIR: Абсолютный путь к корневому каталогу проекта. Обычно используется для построения других путей. По умолчанию определяется с помощью- Path(__file__).resolve().parent.parent.
- DEBUG: Булево значение.- Trueвключает отладочный режим, предоставляющий подробную информацию об ошибках и упрощающий разработку. Обязательно выключайте- DEBUG = Falseв продакшене.
- ALLOWED_HOSTS: Список разрешенных хостов, с которых могут обслуживаться ваши приложения проекта. Это критически важный параметр для безопасности, предотвращающий атаки типа “подмена хоста”. В продакшене должен содержать только домен вашего сайта (или его IP-адрес).
- SECRET_KEY: Случайно сгенерированный секретный ключ, используемый для защиты от подделок CSRF (Cross-Site Request Forgery) и других атак. Генерируйте его с помощью- python manage.py shellи- import secrets; secrets.token_hex(32)и никогда не коммитите в публичный репозиторий!
2. Настройки приложений:
- INSTALLED_APPS: Список установленных приложений в проекте, если приложение присутствует в проекте, но не добавлено в этот список, то оно не будет работать.
- MIDDLEWARE: Список промежуточных программных компонентов.
3. Настройки URL:
- ROOT_URLCONF: Путь к файлу URL-конфигурации вашего проекта (например- 'myproject.urls').
4. Шаблоны:
- TEMPLATES: Список настроек для системы шаблонизации. Определяет пути к директориям с шаблонами, используемый движок шаблонов (обычно- django.template.backends.django.DjangoTemplates) и другие параметры.
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [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',
            ],
        },
    },
]
5. Базы данных:
- DATABASES: Словарь, определяющий конфигурацию базы данных. Включает в себя имя движка(например- 'django.db.backends.sqlite3'), имя пользователя, пароль, имя базы данных, хост и порт.
 Например для PostgreSQL:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'my_db',
        'USER': 'my_user',
        'PASSWORD': 'my_user_pass',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}
6. Статические файлы:
- STATIC_URL: URL-префикс для статических файлов (например,- /static/).
- STATICFILES_DIRS: Список путей к директориям со статическими файлами.
- STATIC_ROOT: Путь к директории, куда будут собираться статические файлы для продакшена (используется командой- collectstatic).
7. Медиафайлы:
- MEDIA_URL: URL-префикс для медиафайлов (например,- /media/).
- MEDIA_ROOT: Путь к директории, где будут храниться медиафайлы.
8. Безопасность:
- CSRF_COOKIE_SECURE: Требует безопасного соединения (HTTPS) для куки CSRF. Должно быть- Trueв продакшене.
- SESSION_COOKIE_SECURE: Требует безопасного соединения (HTTPS) для сессионных куки. Должно быть- Trueв продакшене.
- SECURE_SSL_REDIRECT: Перенаправляет все HTTP-запросы на HTTPS. Должно быть- Trueв продакшене.
- SECURE_HSTS_SECONDS: Время в секундах, в течение которого браузер должен использовать только HTTPS для соединения с сайтом (HTTP Strict Transport Security).
9. Локализация:
- LANGUAGE_CODE: Код языка по умолчанию (например,- 'ru-ru').
- TIME_ZONE: Часовой пояс (например,- 'Europe/Moscow').
- USE_I18N: Включает интернационализацию.
- USE_L10N: Включает локализацию.
- USE_TZ: Включает использование часовых поясов.
10. Почтовые настройки:
- EMAIL_BACKEND: Движок для отправки почты.
- EMAIL_HOST: Хост почтового сервера.
- EMAIL_PORT: Порт почтового сервера.
- EMAIL_HOST_USER: Имя пользователя для почтового сервера.
- EMAIL_HOST_PASSWORD: Пароль для почтового сервера.
Это далеко не полный список всех параметров, но он охватывает наиболее важные и часто используемые настройки. Для получения полного списка и подробного описания каждого параметра обратитесь к официальной документации Django . Запомните, что многие из этих параметров критичны для безопасности и производительности вашего приложения, особенно в продакшене. Правильная настройка settings.py - залог успешной работы вашего Django проекта.
Не волнуйтесь, если вы многое не понимаете из того, что здесь видите. Подробнее о различных настроечных параметрах Django мы узнаем дальше.