Программа курса:
Настройки проекта
Файл 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 мы узнаем дальше.