Настройки
- Основные настройки
- Авторизация
- Сообщения
- Сессии
- Сайты
- Статические файлы
- Тематический указатель основных настроек
Предупреждение
Будьте внимательны при перезаписи настроек, особенно когда значение по умолчанию — это непустой список или словарь, например MIDDLEWARE_CLASSES и STATICFILES_FINDERS. Убедитесь, что вы сохранили все необходимые компоненты для функций Django, которые вы хотите использовать.
Основные настройки
Вот список настроек, доступных в ядре Django, и их значения по умолчанию. Настройки, предоставляемые приложениями contrib, перечислены ниже, за ними следует тематический указатель основных настроек. Для вводного материала см. руководство по настройкам.
ABSOLUTE_URL_OVERRIDES
Значение по умолчанию: {} (Пустой словарь)
Словарь, сопоставляющий "app_label.model_name" строки функциям, которые принимают объект модели и возвращают его URL. Это способ вставки или перезаписи get_absolute_url() методов на основе каждой установки. Пример:
ABSOLUTE_URL_OVERRIDES = {
'blogs.weblog': lambda o: "/blogs/%s/" % o.slug,
'news.story': lambda o: "/stories/%s/%s/" % (o.pub_year, o.slug),
}
Обратите внимание, что имя модели, используемое в этой настройке, должно быть в нижнем регистре, независимо от регистра фактического имени класса модели.
ADMINS
Значение по умолчанию: [] (Пустой список)
Список всех людей, которые получают уведомления об ошибках кода. Когда DEBUG=False и представление вызывает исключение, Django отправит этим людям электронное письмо с полным сообщением об исключении. Каждый элемент в списке должен быть кортежем из (Полное имя, адрес электронной почты). Пример:
[('John', 'john@example.com'), ('Mary', 'mary@example.com')]
Обратите внимание, что Django отправит электронные письма всем этим людям всякий раз, когда произойдет ошибка. Дополнительную информацию см. в разделе Отчет об ошибках.
ALLOWED_HOSTS
Значение по умолчанию: [] (Пустой список)
Список строк, представляющих имена хоста/домена, которые может обслуживать этот сайт Django. Это мера безопасности, предотвращающая атаки на заголовок HTTP Host, которые возможны даже при многих, казалось бы, безопасных конфигурациях веб-сервера.
Значения в этом списке могут быть полными именами (например, 'www.example.com'), в таком случае они будут точно сопоставляться с заголовком запроса Host (без учета регистра, без учета порта). Значение, начинающееся с точки, может использоваться как поддоменная маска: '.example.com' будет соответствовать example.com, www.example.com, и любому другому поддомену example.com. Значение '*' будет соответствовать чему угодно; в этом случае вы несете ответственность за предоставление собственной проверки заголовка Host (возможно, в middleware; в таком случае этот middleware должен быть перечислен первым в MIDDLEWARE).
Django также допускает полное доменное имя (FQDN) любых записей. Некоторые браузеры включают заключительную точку в заголовке Host, которую Django удаляет при выполнении проверки хоста.
Если заголовок Host (или X-Forwarded-Host если USE_X_FORWARDED_HOST включен) не соответствует ни одному значению в этом списке, метод django.http.HttpRequest.get_host() вызовет SuspiciousOperation.
Когда DEBUG равно True и ALLOWED_HOSTS пусто, хост проверяется на соответствие ['localhost', '127.0.0.1', '[::1]'].
Эта проверка применяется только через get_host(); если ваш код напрямую обращается к заголовку Host из request.META, вы обходите эту защиту безопасности.
В более ранних версиях ALLOWED_HOSTS не проверялось, если DEBUG=True. Это также было изменено в Django 1.9.11 и 1.8.16, чтобы предотвратить атаку DNS rebinding.
APPEND_SLASH
Значение по умолчанию: True
Если установлено значение True, если URL запроса не соответствует ни одному из шаблонов в URLconf и не оканчивается слешем, будет выполнен HTTP-перенаправление на тот же URL с добавленным слешем. Обратите внимание, что перенаправление может привести к потере любых данных, отправленных в запросе POST.
Настройка APPEND_SLASH используется только в том случае, если установлен CommonMiddleware (см. Middleware). См. также PREPEND_WWW.
CACHES
Значение по умолчанию:
{
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
}
}
Словарь, содержащий настройки всех кэшей, используемых с Django. Это вложенный словарь, содержимое которого сопоставляет псевдонимы кэшей со словарем, содержащим параметры для отдельного кэша.
Настройка CACHES должна настроить кэш default; любое количество дополнительных кэшей также может быть указано. Если вы используете кэш-бекенд, отличный от локального кэша памяти, или вам нужно определить несколько кэшей, потребуются другие параметры. Доступны следующие параметры кэша.
BACKEND
Значение по умолчанию: '' (Пустая строка)
Используемый кэш-бекенд. Встроенные кэш-бекенды:
'django.core.cache.backends.db.DatabaseCache''django.core.cache.backends.dummy.DummyCache''django.core.cache.backends.filebased.FileBasedCache''django.core.cache.backends.locmem.LocMemCache''django.core.cache.backends.memcached.MemcachedCache''django.core.cache.backends.memcached.PyLibMCCache'
Вы можете использовать кэш-бекенд, который не поставляется с Django, установив BACKEND на полный путь к классу кэш-бекенда (например, mypackage.backends.whatever.WhateverCache).
KEY_FUNCTION
Строка, содержащая путь к функции (или любому вызываемому объекту), определяющая, как составить префикс, версию и ключ в конечный ключ кэша. По умолчанию реализация эквивалентна функции:
def make_key(key, key_prefix, version):
return ':'.join([key_prefix, str(version), key])
Вы можете использовать любую функцию ключа, которую хотите, при условии, что она имеет такой же синтаксис аргументов.
См. документацию по кэшу для получения дополнительной информации.
KEY_PREFIX
Значение по умолчанию: '' (Пустая строка)
Строка, которая будет автоматически включаться (по умолчанию добавляться в начало) во все ключи кэша, используемые сервером Django.
См. документацию по кэшу для получения дополнительной информации.
LOCATION
Значение по умолчанию: '' (Пустая строка)
Расположение используемого кэша. Это может быть каталог для кэша файловой системы, хост и порт для сервера memcache или просто идентификатор для локального кэша памяти. Например:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION': '/var/tmp/django_cache',
}
}
OPTIONS
Значение по умолчанию: None
Дополнительные параметры для передачи кэш-бекенду. Доступные параметры зависят от вашего кэш-бекенда.
Некоторая информация о доступных параметрах может быть найдена в документации по аргументам кэша. Для получения дополнительной информации, проконсультируйтесь с документацией вашего модуля бекенда.
TIMEOUT
Значение по умолчанию: 300
Количество секунд, по истечении которых запись кэша считается устаревшей. Если значение этой настройки равно None, записи кэша не будут истекать.
VERSION
Значение по умолчанию: 1
Номер версии по умолчанию для ключей кэша, сгенерированных сервером Django.
См. документацию по кэшу для получения дополнительной информации.
CACHE_MIDDLEWARE_ALIAS
Значение по умолчанию: default
Подключение к кэшу, которое нужно использовать для middleware кэша.
CACHE_MIDDLEWARE_KEY_PREFIX
Значение по умолчанию: '' (Пустая строка)
Строка, которая будет добавляться в качестве префикса к ключам кэша, генерируемым middleware кэша. Этот префикс комбинируется с настройкой KEY_PREFIX; он не заменяет ее.
CACHE_MIDDLEWARE_SECONDS
Значение по умолчанию: 600
Стандартное количество секунд для кэширования страницы для middleware кэша.
CSRF_COOKIE_AGE
Срок действия куки CSRF в секундах.
Причина установки длительного срока действия истечения срока годности заключается в том, чтобы избежать проблем в случае закрытия пользователем браузера или добавления страницы в закладки, а затем загрузки этой страницы из кэша браузера. Без постоянных файлов cookie отправка формы в этом случае завершится неудачей.
Некоторые браузеры (в частности, Internet Explorer) могут запретить использование постоянных файлов cookie или иметь поврежденные индексы в файле cookie, что может привести к тому, что проверки защиты от CSRF (иногда периодически) завершатся неудачей. Измените эту настройку на None, чтобы использовать файлы cookie CSRF на основе сеанса, которые хранят файлы cookie в памяти вместо постоянного хранилища.
CSRF_COOKIE_DOMAIN
Домен, который будет использоваться при установке файла cookie CSRF. Это может быть полезно для легкого исключения запросов с разных поддоменов из обычной защиты от подделки межсайтовых запросов. Следует установить его на строку, такую как ".example.com", чтобы разрешить POST-запрос из формы на одном поддомене, чтобы его принял вид, обслуживаемый с другого поддомена.
Обратите внимание, что наличие этой настройки не означает, что защита Django от CSRF по умолчанию защищена от межподдоменных атак — см. раздел Ограничения CSRF.
CSRF_COOKIE_HTTPONLY
Использовать флаг HttpOnly для файла cookie CSRF. Если это установлено в True, клиентский JavaScript не сможет получить доступ к файлу cookie CSRF.
Это может помочь предотвратить несанкционированный доступ злонамеренного JavaScript к защите от CSRF. Если вы включили эту опцию и вам нужно отправить значение маркера CSRF с запросами Ajax, ваш JavaScript должен извлечь значение из скрытого поля ввода формы маркера CSRF на странице, а не из файла cookie.
См. SESSION_COOKIE_HTTPONLY для получения подробной информации о HttpOnly.
CSRF_COOKIE_NAME
Имя файла cookie, используемого для маркера аутентификации CSRF. Это может быть любое имя (при условии, что оно отличается от других имен файлов cookie в вашем приложении). См. Защита от подделки межсайтовых запросов.
CSRF_COOKIE_PATH
Путь, установленный в файле cookie CSRF. Он должен соответствовать пути URL вашей установки Django или быть предком этого пути.
Это полезно, если у вас несколько экземпляров Django, работающих под одним именем хоста. Они могут использовать разные пути файлов cookie, и каждый экземпляр увидит только свой собственный файл cookie CSRF.
CSRF_COOKIE_SECURE
Использовать защищённый файл cookie для файла cookie CSRF. Если это установлено в True, файл cookie будет помечен как «защищённый», что означает, что браузеры могут убедиться, что файл cookie отправляется только с HTTPS-соединением.
CSRF_FAILURE_VIEW
По умолчанию: 'django.views.csrf.csrf_failure'
Точечный путь к функции представления, которая будет использоваться, когда входящий запрос отклоняется защитой от CSRF. Функция должна иметь следующую сигнатуру:
def csrf_failure(request, reason=""):
...
где reason — короткое сообщение (предназначенное для разработчиков или логирования, а не для конечных пользователей), указывающее причину отклонения запроса. Она должна возвращать HttpResponseForbidden.
django.views.csrf.csrf_failure() принимает дополнительный параметр template_name, который по умолчанию равен '403_csrf.html'. Если шаблон с этим именем существует, он будет использован для отрисовки страницы.
Параметр template_name и поведение поиска шаблона под названием 403_csrf.html были добавлены в csrf_failure().
CSRF_HEADER_NAME
По умолчанию: 'HTTP_X_CSRFTOKEN'
Имя заголовка запроса, используемого для аутентификации CSRF.
Как и другие HTTP-заголовки в request.META, имя заголовка, полученное от сервера, нормализуется путем преобразования всех символов в верхний регистр, замены всех тире на нижние подчеркивания и добавления префикса 'HTTP_' к имени. Например, если ваш клиент отправляет заголовок 'X-XSRF-TOKEN', настройка должна быть 'HTTP_X_XSRF_TOKEN'.
CSRF_TRUSTED_ORIGINS
По умолчанию: [] (Пустой список)
Список хостов, которые являются доверенными источниками для небезопасных запросов (например, POST). Для secure небезопасного запроса защита Django от CSRF требует, чтобы запрос содержал заголовок Referer, который соответствует источнику, представленному в заголовке Host. Это предотвращает, например, запрос POST с subdomain.example.com от успешного выполнения против api.example.com. Если вам нужны междоменные небезопасные запросы через HTTPS, добавив в этот список "subdomain.example.com". Настройка также поддерживает поддомены, поэтому вы можете добавить ".example.com", например, чтобы разрешить доступ со всех поддоменов example.com.
DATABASES
По умолчанию: {} (Пустой словарь)
Словарь, содержащий настройки для всех баз данных, которые будут использоваться с Django. Это вложенный словарь, чьи содержимое сопоставляет псевдоним базы данных со словарем, содержащим параметры для отдельной базы данных.
Настройка DATABASES должна настроить базу данных default; также может быть указано любое количество дополнительных баз данных.
Самый простой возможный файл настроек для установки с одной базой данных с использованием SQLite. Это можно настроить следующим образом:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'mydatabase',
}
}
При подключении к другим базам данных, таким как MySQL, Oracle или PostgreSQL, потребуются дополнительные параметры подключения. См. настройку ENGINE ниже, чтобы указать другие типы баз данных. Этот пример для PostgreSQL:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydatabase',
'USER': 'mydatabaseuser',
'PASSWORD': 'mypassword',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
Доступны следующие внутренние параметры, которые могут потребоваться для более сложных конфигураций:
ATOMIC_REQUESTS
По умолчанию: False
Установите это в True, чтобы обернуть каждое представление транзакцией в этой базе данных. См. Связывание транзакций с HTTP-запросами.
AUTOCOMMIT
По умолчанию: True
Установите это в False, если вы хотите отключить управление транзакциями Django и реализовать собственное.
ENGINE
По умолчанию: '' (Пустая строка)
Бэкенд базы данных для использования. Встроенные бэкенды баз данных:
'django.db.backends.postgresql''django.db.backends.mysql''django.db.backends.sqlite3''django.db.backends.oracle'
Вы можете использовать бэкенд базы данных, который не поставляется с Django, установив ENGINE на полностью квалифицированный путь (например, mypackage.backends.whatever).
Бэкенд django.db.backends.postgresql называется django.db.backends.postgresql_psycopg2 в более ранних выпусках. Для обратной совместимости старое имя по-прежнему работает в более новых версиях.
HOST
По умолчанию: '' (Пустая строка)
Хост для подключения к базе данных. Пустая строка означает localhost. Не используется с SQLite.
Если это значение начинается с косой черты ('/') и вы используете MySQL, MySQL подключится через сокет Unix к указанному сокету. Например:
"HOST": '/var/run/mysql'
Если вы используете MySQL, а это значение не начинается с косой черты, то это значение предполагается как имя хоста.
Если вы используете PostgreSQL, по умолчанию (пустой HOST) подключение к базе данных выполняется через сокеты доменных имен Unix («локальные» строки в pg_hba.conf). Если ваш сокет доменного имени Unix не находится в стандартном месте, используйте то же значение unix_socket_directory из postgresql.conf. Если вы хотите подключиться через TCP-сокеты, установите HOST на 'localhost' или '127.0.0.1' («строки хоста» в pg_hba.conf). В Windows всегда следует определять HOST, так как сокеты доменных имен Unix недоступны.
NAME
По умолчанию: '' (Пустая строка)
Имя базы данных для использования. Для SQLite это полный путь к файлу базы данных. При указании пути всегда используйте косые черты, даже в Windows (например, C:/homes/user/mysite/sqlite3.db).
CONN_MAX_AGE
По умолчанию: 0
Срок жизни подключения к базе данных в секундах. Используйте 0, чтобы закрывать подключения к базе данных в конце каждого запроса — историческое поведение Django — и None для неограниченных постоянных подключений.
OPTIONS
По умолчанию: {} (Пустой словарь)
Дополнительные параметры для использования при подключении к базе данных. Доступные параметры варьируются в зависимости от бэкенда базы данных.
Некоторая информация о доступных параметрах может быть найдена в документации по Бэкендам баз данных. Для получения дополнительной информации обратитесь к документации модуля вашего бэкенда.
PASSWORD
По умолчанию: '' (Пустая строка)
Пароль для подключения к базе данных. Не используется с SQLite.
PORT
По умолчанию: '' (Пустая строка)
Порт для подключения к базе данных. Пустая строка означает порт по умолчанию. Не используется с SQLite.
TIME_ZONE
По умолчанию: None
Строка, представляющая часовой пояс для дат и времени, хранящихся в этой базе данных (при условии, что она не поддерживает часовые пояса) или None. Принимаются те же значения, что и в общем параметре TIME_ZONE.
Это позволяет взаимодействовать с базами данных сторонних производителей, которые хранят даты и время в местном времени, а не в UTC. Чтобы избежать проблем с изменением времени по DST, не следует устанавливать этот параметр для баз данных, управляемых Django.
Установка этого параметра требует установки pytz.
Когда USE_TZ равно True, и база данных не поддерживает часовые пояса (например, SQLite, MySQL, Oracle), Django считывает и записывает даты и время в местном времени в соответствии с этим параметром, если он установлен, и в UTC, если он не установлен.
Когда USE_TZ равно True, и база данных поддерживает часовые пояса (например, PostgreSQL), установка этого параметра является ошибкой.
До Django 1.9, база данных PostgreSQL принимала недокументированный TIME_ZONE параметр, что приводило к повреждению данных.
Когда USE_TZ равно False, установка этого параметра является ошибкой.
USER
Значение по умолчанию: '' (пустая строка)
Имя пользователя для подключения к базе данных. Не используется с SQLite.
TEST
Значение по умолчанию: {} (пустой словарь)
Словарь настроек для тестовых баз данных; для получения более подробной информации о создании и использовании тестовых баз данных см. Тестовая база данных.
Вот пример с конфигурацией тестовой базы данных:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'USER': 'mydatabaseuser',
'NAME': 'mydatabase',
'TEST': {
'NAME': 'mytestdatabase',
},
},
}
Следующие ключи в словаре TEST доступны:
CHARSET
Значение по умолчанию: None
Кодировка набора символов, используемая для создания тестовой базы данных. Значение этой строки передается непосредственно в базу данных, поэтому ее формат зависит от типа базы данных.
Поддерживается в PostgreSQL (postgresql) и MySQL (mysql) бэкендах.
COLLATION
Значение по умолчанию: None
Порядок сортировки для использования при создании тестовой базы данных. Это значение передается непосредственно в бэкенд, поэтому его формат зависит от типа базы данных.
Поддерживается только для бэкенда mysql (см. руководство MySQL для получения подробностей).
DEPENDENCIES
Значение по умолчанию: ['default'], для всех баз данных, кроме default, которая не имеет зависимостей.
Зависимости порядка создания базы данных. Подробнее см. в документации по управлению порядком создания тестовых баз данных.
MIRROR
Значение по умолчанию: None
Псевдоним базы данных, который эта база данных должна дублировать во время тестирования.
Этот параметр существует для тестирования конфигураций мастер/реплика (в некоторых базах данных называют мастер/раб) нескольких баз данных. Подробнее см. в документации по тестированию конфигураций мастер/реплика.
NAME
Значение по умолчанию: None
Имя базы данных для использования при запуске набора тестов.
Если используется значение по умолчанию (None) с движком SQLite, тесты будут использовать базу данных в оперативной памяти. Для всех других движков баз данных тестовая база данных будет использовать имя 'test_' + DATABASE_NAME.
См. Тестовая база данных.
SERIALIZE
Булевое значение для управления тем, сериализует ли стандартный запуск тестов базу данных в строку JSON в оперативной памяти перед запуском тестов (для восстановления состояния базы данных между тестами, если у вас нет транзакций). Вы можете установить его в False, чтобы ускорить время создания, если у вас нет ни одного класса тестов с serialized_rollback=True.
CREATE_DB
Значение по умолчанию: True
Это параметр, специфичный для Oracle.
Если он установлен в False, тестовые табличные пространства не будут автоматически создаваться в начале тестов или удаляться в конце.
CREATE_USER
Значение по умолчанию: True
Это параметр, специфичный для Oracle.
Если он установлен в False, тестовый пользователь не будет автоматически создаваться в начале тестов и удаляться в конце.
USER
Значение по умолчанию: None
Это параметр, специфичный для Oracle.
Имя пользователя для подключения к базе данных Oracle, которая будет использоваться при выполнении тестов. Если не указано, Django будет использовать 'test_' + USER.
PASSWORD
Значение по умолчанию: None
Это параметр, специфичный для Oracle.
Пароль для подключения к базе данных Oracle, которая будет использоваться при выполнении тестов. Если не указано, Django сгенерирует случайный пароль.
В более старых версиях использовался жестко заданный пароль по умолчанию. Это также было изменено в 1.9.11 и 1.8.16 для устранения потенциальных проблем безопасности.
TBLSPACE
Значение по умолчанию: None
Это параметр, специфичный для Oracle.
Имя табличного пространства, которое будет использоваться при выполнении тестов. Если не указано, Django будет использовать 'test_' + USER.
TBLSPACE_TMP
Значение по умолчанию: None
Это параметр, специфичный для Oracle.
Имя временного табличного пространства, которое будет использоваться при выполнении тестов. Если не указано, Django будет использовать 'test_' + USER + '_temp'.
DATAFILE
Значение по умолчанию: None
Это параметр, специфичный для Oracle.
Имя файла данных для использования для TBLSPACE. Если не указано, Django будет использовать TBLSPACE + '.dbf'.
DATAFILE_TMP
Значение по умолчанию: None
Это параметр, специфичный для Oracle.
Имя файла данных для использования для TBLSPACE_TMP. Если не указано, Django будет использовать TBLSPACE_TMP + '.dbf'.
DATAFILE_MAXSIZE
Значение по умолчанию: '500M'
Это параметр, специфичный для Oracle.
Максимальный размер, до которого разрешено увеличиваться DATAFILE.
DATAFILE_TMP_MAXSIZE
Значение по умолчанию: '500M'
Это параметр, специфичный для Oracle.
Максимальный размер, до которого разрешено увеличиваться DATAFILE_TMP.
DATA_UPLOAD_MAX_MEMORY_SIZE
Значение по умолчанию: 2621440 (т.е. 2,5 МБ).
Максимальный размер в байтах тела запроса перед тем, как будет поднято исключение SuspiciousOperation (RequestDataTooBig). Проверка выполняется при доступе к request.body или request.POST и рассчитывается по общему размеру запроса, исключая данные загрузки файлов. Вы можете установить это значение в None, чтобы отключить проверку. Приложения, ожидающие необычно больших POST-запросов, должны настроить эту настройку.
Объем данных запроса коррелирует с объемом памяти, необходимым для обработки запроса и заполнения словарей GET и POST. Крупные запросы могут использоваться как вектор атак отказ в обслуживании, если их не контролировать. Поскольку веб-серверы обычно не выполняют глубокий анализ запросов, подобная проверка на этом уровне невозможна.
См. также FILE_UPLOAD_MAX_MEMORY_SIZE.
DATA_UPLOAD_MAX_NUMBER_FIELDS
Значение по умолчанию: 1000
Максимальное количество параметров, которые могут быть получены через GET или POST, прежде чем будет поднято исключение SuspiciousOperation (TooManyFields). Вы можете установить это значение в None, чтобы отключить проверку. Приложения, которые ожидают необычно большое количество полей формы, должны настроить эту настройку.
Количество параметров запроса коррелирует со временем, необходимым для обработки запроса и заполнения словарей GET и POST. Крупные запросы могут использоваться как вектор атак отказ в обслуживании, если их не контролировать. Поскольку веб-серверы обычно не выполняют глубокий анализ запросов, подобная проверка на этом уровне невозможна.
DATABASE_ROUTERS
Значение по умолчанию: [] (пустой список)
Список маршрутизаторов, которые будут использоваться для определения базы данных, которую следует использовать при выполнении запроса к базе данных.
См. документацию по автоматическому маршрутизации баз данных в конфигурациях с несколькими базами данных.
DATE_FORMAT
Значение по умолчанию: 'N j, Y' (например, Feb. 4, 2003)
Формат по умолчанию для отображения полей даты в любой части системы. Обратите внимание, что если USE_L10N установлено в True, формат, заданный локалью, имеет больший приоритет и будет применен вместо него. См. allowed date format strings.
См. также DATETIME_FORMAT, TIME_FORMAT и SHORT_DATE_FORMAT.
DATE_INPUT_FORMATS
По умолчанию:
[
'%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', # '2006-10-25', '10/25/2006', '10/25/06'
'%b %d %Y', '%b %d, %Y', # 'Oct 25 2006', 'Oct 25, 2006'
'%d %b %Y', '%d %b, %Y', # '25 Oct 2006', '25 Oct, 2006'
'%B %d %Y', '%B %d, %Y', # 'October 25 2006', 'October 25, 2006'
'%d %B %Y', '%d %B, %Y', # '25 October 2006', '25 October, 2006'
]
Список форматов, которые будут приняты при вводе данных в поле даты. Форматы будут пробоваться в порядке следования, используя первый допустимый. Обратите внимание, что эти строковые форматы используют синтаксис модуля datetime Python, а не форматы строк из фильтра шаблона date.
Когда USE_L10N равно True, формат, определённый локалью, имеет больший приоритет и будет применён вместо него.
См. также DATETIME_INPUT_FORMATS и TIME_INPUT_FORMATS.
DATETIME_FORMAT
По умолчанию: 'N j, Y, P' (например, Feb. 4, 2003, 4 p.m.)
Формат по умолчанию для отображения полей datetime в любой части системы. Обратите внимание, что если USE_L10N установлено в значение True, тогда формат, определённый локалью, имеет больший приоритет и будет применён вместо него. См. allowed date format strings.
См. также DATE_FORMAT, TIME_FORMAT и SHORT_DATETIME_FORMAT.
DATETIME_INPUT_FORMATS
По умолчанию:
[
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
'%Y-%m-%d', # '2006-10-25'
'%m/%d/%Y %H:%M:%S', # '10/25/2006 14:30:59'
'%m/%d/%Y %H:%M:%S.%f', # '10/25/2006 14:30:59.000200'
'%m/%d/%Y %H:%M', # '10/25/2006 14:30'
'%m/%d/%Y', # '10/25/2006'
'%m/%d/%y %H:%M:%S', # '10/25/06 14:30:59'
'%m/%d/%y %H:%M:%S.%f', # '10/25/06 14:30:59.000200'
'%m/%d/%y %H:%M', # '10/25/06 14:30'
'%m/%d/%y', # '10/25/06'
]
Список форматов, которые будут приняты при вводе данных в поле datetime. Форматы будут пробоваться в порядке следования, используя первый допустимый. Обратите внимание, что эти строковые форматы используют синтаксис модуля datetime Python, а не форматы строк из фильтра шаблона date.
Если USE_L10N равно True, формат, определённый локалью, имеет больший приоритет и будет применён вместо него.
См. также DATE_INPUT_FORMATS и TIME_INPUT_FORMATS.
DEBUG
По умолчанию: False
Логическое значение, которое включает/отключает режим отладки.
Никогда не развёртывайте сайт в производство с DEBUG, включённым.
Вы поняли? НИКОГДА не развёртывайте сайт в производство с DEBUG, включённым.
Одна из основных функций режима отладки — отображение подробных страниц ошибок. Если ваше приложение вызывает исключение, когда DEBUG равно True, Django отобразит подробную трассировку стека, включая множество метаданных об вашей среде, таких как все текущие настройки Django (из settings.py).
В целях безопасности Django не будет включать настройки, которые могут быть чувствительными, такие как SECRET_KEY. В частности, он исключит любые настройки, имя которых содержит какое-либо из следующих:
'API''KEY''PASS''SECRET''SIGNATURE''TOKEN'
Обратите внимание, что это частичные совпадения. 'PASS' также будет соответствовать PASSWORD, так же как 'TOKEN' также будет соответствовать TOKENIZED и так далее.
Тем не менее, обратите внимание, что всегда будут разделы вашего вывода отладки, которые не подходят для публичного использования. Пути к файлам, параметры конфигурации и т. п. дают злоумышленникам дополнительную информацию о вашем сервере.
Также важно помнить, что при запуске с DEBUG, включённым, Django будет запоминать каждый SQL-запрос, который он выполняет. Это полезно при отладке, но на сервере в производстве это быстро займёт много памяти.
Наконец, если DEBUG равно False, вам также нужно правильно установить настройку ALLOWED_HOSTS. Если этого не сделать, все запросы будут возвращаться как «Ошибка запроса (400) ».
Примечание
Файл по умолчанию settings.py созданный командой django-admin
startproject устанавливает DEBUG = True для удобства.
DEBUG_PROPAGATE_EXCEPTIONS
По умолчанию: False
Если установлено в True, обычная обработка исключений Django для функций представления будет подавлена, и исключения будут распространяться вверх. Это может быть полезно для некоторых тестовых установок, и никогда не должно использоваться на реальном сайте.
DECIMAL_SEPARATOR
По умолчанию: '.' (Точка)
Десятичный разделитель по умолчанию, используемый при форматировании десятичных чисел.
Обратите внимание, что если USE_L10N установлено в True, тогда формат, определённый локалью, имеет больший приоритет и будет применён вместо него.
См. также NUMBER_GROUPING, THOUSAND_SEPARATOR и USE_THOUSAND_SEPARATOR.
DEFAULT_CHARSET
По умолчанию: 'utf-8'
Набор символов по умолчанию для всех объектов HttpResponse, если MIME-тип не указан вручную. Используется с DEFAULT_CONTENT_TYPE для построения заголовка Content-Type.
DEFAULT_CONTENT_TYPE
По умолчанию: 'text/html'
Тип контента по умолчанию для всех объектов HttpResponse, если MIME-тип не указан вручную. Используется с DEFAULT_CHARSET для построения заголовка Content-Type.
DEFAULT_EXCEPTION_REPORTER_FILTER
По умолчанию: 'django.views.debug.SafeExceptionReporterFilter'
Класс фильтра отчётчика об ошибках по умолчанию, который будет использоваться, если для экземпляра HttpRequest ещё не назначен. См. Фильтрация отчетов об ошибках.
DEFAULT_FILE_STORAGE
По умолчанию: 'django.core.files.storage.FileSystemStorage'
Класс хранилища файлов по умолчанию, который используется для любых операций с файлами, не указывающими определённую систему хранения. См. Управление файлами.
DEFAULT_FROM_EMAIL
По умолчанию: 'webmaster@localhost'
Адрес электронной почты по умолчанию для различных автоматических сообщений от системного администратора(ов). Это не включает сообщения об ошибках, отправленные в ADMINS и MANAGERS; для этого см. SERVER_EMAIL.
DEFAULT_INDEX_TABLESPACE
По умолчанию: '' (Пустая строка)
Пространство имен таблицы по умолчанию для индексов полей, не указывающих конкретное пространство имен, если это поддерживается бэкэндом (см. Пространства имен таблиц).
DEFAULT_TABLESPACE
По умолчанию: '' (Пустая строка)
Пространство имен таблицы по умолчанию для моделей, не указывающих конкретное пространство имен, если это поддерживается бэкэндом (см. Пространства имен таблиц).
DISALLOWED_USER_AGENTS
По умолчанию: [] (Пустой список)
Список скомпилированных объектов регулярных выражений, представляющих строки User-Agent, которые запрещено посещать любую страницу в системе. Используйте это для плохих роботов/скраперов. Это используется только если CommonMiddleware установлен (см. Среднее программное обеспечение).
EMAIL_BACKEND
По умолчанию: 'django.core.mail.backends.smtp.EmailBackend'
Бэкэнд, используемый для отправки электронных писем. Список доступных бэкэндов см. в Отправка электронных писем.
EMAIL_FILE_PATH
По умолчанию: Не определено
Директория, используемая бэкэндом электронных писем file для хранения выходных файлов.
EMAIL_HOST
По умолчанию: 'localhost'
Хост, используемый для отправки электронной почты.
См. также EMAIL_PORT.
EMAIL_HOST_PASSWORD
По умолчанию: '' (Пустая строка)
Пароль для использования с SMTP-сервером, определённым в EMAIL_HOST. Данная настройка используется совместно с EMAIL_HOST_USER при аутентификации на SMTP-сервере. Если любая из этих настроек пуста, Django не будет пытаться выполнить аутентификацию.
См. также EMAIL_HOST_USER.
EMAIL_HOST_USER
По умолчанию: '' (Пустая строка)
Имя пользователя для использования с SMTP-сервером, определённым в EMAIL_HOST. Если пусто, Django не будет пытаться выполнить аутентификацию.
См. также EMAIL_HOST_PASSWORD.
EMAIL_PORT
По умолчанию: 25
Порт для использования с SMTP-сервером, определённым в EMAIL_HOST.
EMAIL_SUBJECT_PREFIX
По умолчанию: '[Django] '
Префикс строки темы для электронных писем, отправленных с помощью django.core.mail.mail_admins или django.core.mail.mail_managers. Вероятно, вам потребуется включить конечный пробел.
EMAIL_USE_TLS
По умолчанию: False
Использовать ли TLS (безопасное) соединение при общении с SMTP-сервером. Это используется для явных TLS-соединений, обычно на порту 587. Если у вас возникают проблемы с зависанием соединений, см. настройку неявного TLS EMAIL_USE_SSL.
EMAIL_USE_SSL
По умолчанию: False
Использовать ли неявное TLS (безопасное) соединение при общении с SMTP-сервером. В большинстве документаций по электронной почте этот тип TLS-соединения обозначается как SSL. Он обычно используется на порту 465. Если у вас возникают проблемы, см. настройку явного TLS EMAIL_USE_TLS.
Обратите внимание, что EMAIL_USE_TLS/EMAIL_USE_SSL взаимоисключают, поэтому необходимо установить только одно из этих значений в True.
EMAIL_SSL_CERTFILE
По умолчанию: None
Если EMAIL_USE_SSL или EMAIL_USE_TLS равно True, вы можете указать путь к файлу цепочки сертификатов в формате PEM для использования в SSL-соединении.
EMAIL_SSL_KEYFILE
По умолчанию: None
Если EMAIL_USE_SSL или EMAIL_USE_TLS равно True, вы можете указать путь к файлу закрытого ключа в формате PEM для использования в SSL-соединении.
Обратите внимание, что установка EMAIL_SSL_CERTFILE и EMAIL_SSL_KEYFILE не приводит к проверке сертификатов. Они передаются в базовое SSL-соединение. Обратитесь к документации функции Python ssl.wrap_socket() для получения подробной информации о том, как обрабатываются файл цепочки сертификатов и файл закрытого ключа.
EMAIL_TIMEOUT
По умолчанию: None
Устанавливает таймаут в секундах для блокирующих операций, таких как попытка подключения.
FILE_CHARSET
По умолчанию: 'utf-8'
Кодировка символов, используемая для декодирования любых файлов, считанных с диска. Это включает файлы шаблонов и файлы начальных данных SQL.
FILE_UPLOAD_HANDLERS
По умолчанию:
[
'django.core.files.uploadhandler.MemoryFileUploadHandler',
'django.core.files.uploadhandler.TemporaryFileUploadHandler',
]
Список обработчиков, используемых для загрузки. Изменение этой настройки позволяет полностью настроить — даже заменить — процесс загрузки Django.
См. Управление файлами для получения подробной информации.
FILE_UPLOAD_MAX_MEMORY_SIZE
По умолчанию: 2621440 (т.е. 2,5 МБ).
Максимальный размер (в байтах) загрузки перед её потоковой передачей на файловую систему. См. Управление файлами для получения подробной информации.
См. также DATA_UPLOAD_MAX_MEMORY_SIZE.
FILE_UPLOAD_DIRECTORY_PERMISSIONS
По умолчанию: None
Числовой режим, применяемый к каталогам, созданным в процессе загрузки файлов.
Эта настройка также определяет права доступа по умолчанию для собранных статических каталогов при использовании команды управления collectstatic. См. collectstatic для получения подробной информации об её переопределении.
Это значение отражает функциональность и замечания настройки FILE_UPLOAD_PERMISSIONS.
FILE_UPLOAD_PERMISSIONS
По умолчанию: None
Числовой режим (т.е. 0o644) для установления прав доступа к вновь загруженным файлам. Для получения дополнительной информации о значении этих режимов см. документацию по os.chmod().
Если это значение не задано или равно None, будет использоваться поведение, зависящее от операционной системы. На большинстве платформ временные файлы будут иметь режим 0o600, а файлы, сохранённые из памяти, будут сохранены с использованием стандартного значения umask системы.
По соображениям безопасности эти права доступа не применяются к временным файлам, хранящимся в FILE_UPLOAD_TEMP_DIR.
Эта настройка также определяет права доступа по умолчанию для собранных статических файлов при использовании команды управления collectstatic. См. collectstatic для получения подробной информации об её переопределении.
Предупреждение
Всегда добавляйте префикс 0 к режиму.
Если вы не знакомы с режимами файлов, обратите внимание, что ведущий префикс 0 очень важен: он указывает на восьмеричное число, которое является способом указания режимов. Если вы попробуете использовать 644, у вас будет совершенно неправильное поведение.
FILE_UPLOAD_TEMP_DIR
По умолчанию: None
Каталог для временного хранения данных (обычно файлов, размер которых больше, чем FILE_UPLOAD_MAX_MEMORY_SIZE), во время загрузки файлов. Если None, Django будет использовать стандартный временный каталог операционной системы. Например, он будет по умолчанию равен /tmp на операционных системах *nix.
См. Управление файлами для получения подробной информации.
FIRST_DAY_OF_WEEK
По умолчанию: 0 (Воскресенье)
Число, представляющее первый день недели. Это особенно полезно при отображении календаря. Это значение используется только при отсутствии форматирования международной локализации или когда формат не найден для текущей локали.
Значение должно быть целым числом от 0 до 6, где 0 означает Воскресенье, 1 означает Понедельник и так далее.
FIXTURE_DIRS
По умолчанию: [] (Пустой список)
Список каталогов, в которых ищутся файлы фикстур, помимо каталога fixtures каждой приложения, в порядке поиска.
Обратите внимание, что эти пути должны использовать косые черты вперёд, даже в Windows.
См. Предоставление начальных данных с помощью фикстур и Загрузка фикстур.
FORCE_SCRIPT_NAME
По умолчанию: None
Если не None, это будет использоваться в качестве значения переменной среды SCRIPT_NAME в любом HTTP-запросе. Эта настройка может использоваться для переопределения значения, предоставленного сервером, для SCRIPT_NAME, которое может быть переписанной версией предпочтительного значения или не предоставлено вовсе. Она также используется django.setup() для установки префикса скрипта распознавателя URL вне цикла запроса/ответа (например, в командах управления и автономных скриптах) для генерации правильных URL-адресов, когда SCRIPT_NAME не /.
Добавлена настройка для использования в django.setup().
FORMAT_MODULE_PATH
По умолчанию: None
Полный путь к пакету Python, содержащему определения форматов для региональных настроек проекта. Если не None, Django будет искать файл formats.py, в каталоге, названном текущей локалью, и использовать форматы, определённые в этом файле.
Например, если FORMAT_MODULE_PATH установлено в mysite.formats, а текущий язык en (английский), Django будет ожидать древовидную структуру каталогов:
mysite/
formats/
__init__.py
en/
__init__.py
formats.py
Также вы можете установить эту настройку в список путей Python, например:
FORMAT_MODULE_PATH = [
'mysite.formats',
'some_app.formats',
]
Когда Django ищет определённый формат, он будет перебирать все указанные пути Python, пока не найдёт модуль, который фактически определяет данный формат. Это означает, что форматы, определённые в пакетах, расположенных выше в списке, будут иметь приоритет над теми же форматами в пакетах, расположенных ниже.
Доступные форматы — DATE_FORMAT, TIME_FORMAT, DATETIME_FORMAT, YEAR_MONTH_FORMAT, MONTH_DAY_FORMAT, SHORT_DATE_FORMAT, SHORT_DATETIME_FORMAT, FIRST_DAY_OF_WEEK, DECIMAL_SEPARATOR, THOUSAND_SEPARATOR и NUMBER_GROUPING.
IGNORABLE_404_URLS
По умолчанию: [] (пустой список)
Список скомпилированных объектов регулярных выражений, описывающих URL-адреса, которые следует игнорировать при сообщении об ошибках HTTP 404 по электронной почте (см. Отчёт об ошибках). Регулярные выражения сопоставляются с request's full paths (включая строку запроса, если она есть). Используйте этот параметр, если ваш сайт не предоставляет часто запрашиваемый файл, например, favicon.ico или robots.txt, или если он подвергается атакам со стороны злоумышленников.
Этот параметр используется только в случае, если включён BrokenLinkEmailsMiddleware (см. Средства промежуточного слоя).
INSTALLED_APPS
По умолчанию: [] (пустой список)
Список строк, определяющих все приложения, включенные в данной установке Django. Каждая строка должна быть полным путем к:
- классу конфигурации приложения (предпочтительный вариант), или
- пакету, содержащему приложение.
Дополнительная информация о конфигурациях приложений.
Используйте реестр приложений для интроспекции
Ваш код не должен напрямую обращаться к INSTALLED_APPS. Используйте django.apps.apps вместо этого.
Имена и метки приложений должны быть уникальными в INSTALLED_APPS
Имя приложения names — полный путь к пакету приложения — должно быть уникальным. Нет возможности включить одно и то же приложение дважды, кроме дублирования кода под другим именем.
Метка приложения labels — по умолчанию, последняя часть имени — также должна быть уникальной. Например, вы не можете включить как django.contrib.auth так и myproject.auth. Однако, вы можете переименовать приложение с помощью настраиваемой конфигурации, которая определяет другую метку label.
Эти правила применяются независимо от того, ссылается ли INSTALLED_APPS на классы конфигурации приложений или на пакеты приложений.
Когда несколько приложений предоставляют разные версии одного и того же ресурса (шаблон, статический файл, команда управления, перевод), приложение, указанное первым в INSTALLED_APPS, имеет приоритет.
INTERNAL_IPS
По умолчанию: [] (пустой список)
Список IP-адресов, как строки, которые:
- Разрешают
debug()процессору контекста добавлять некоторые переменные в контекст шаблона. - Позволяют использовать закладки админдокументов, даже если вы не вошли как пользователь с правами администратора.
- Отмечаются как «внутренние» (в отличие от «внешних») в письмах
AdminEmailHandler.
LANGUAGE_CODE
По умолчанию: 'en-us'
Строка, представляющая код языка для этой установки. Она должна быть в стандартном формате кода языка. Например, английский язык США — "en-us". См. также список идентификаторов языков и Международные настройки и локализация.
USE_I18N должен быть активным для того, чтобы данная настройка имела какой-либо эффект.
Это служит двум целям:
- Если в использовании нет промежуточного слоя локализации, он определяет, какой перевод будет отображаться всем пользователям.
- Если активен промежуточный слой локализации, он предоставляет резервный язык в случае, если предпочтительный язык пользователя не может быть определён или не поддерживается веб-сайтом. Он также предоставляет резервный перевод, когда перевода для данного литерала не существует для предпочтительного языка пользователя.
Подробности см. в Как Django определяет предпочтение языка.
LANGUAGE_COOKIE_AGE
Срок действия cookie языка в секундах.
LANGUAGE_COOKIE_DOMAIN
Домен для cookie языка. Установите это значение, например, ".example.com" (обратите внимание на ведущую точку!), для cookie разных доменов или используйте None для стандартного cookie домена.
Будьте осторожны при обновлении этой настройки на сайте в рабочей среде. Если вы обновите эту настройку для включения cookie разных доменов на сайте, который ранее использовал cookie стандартного домена, существующие cookie пользователей со старым доменом не будут обновлены. Это приведёт к невозможности переключения языка для пользователей сайта до тех пор, пока эти cookie не истекут. Единственный безопасный и надёжный вариант для переключения — изменение имени cookie языка (через настройку LANGUAGE_COOKIE_NAME) и добавление промежуточного слоя, который копирует значение из старого cookie в новый, а затем удаляет старый.
LANGUAGE_COOKIE_NAME
Имя cookie для языка. Вы можете использовать любое имя (только если оно отличается от других имён cookie в вашем приложении). См. Международные настройки и локализация.
LANGUAGE_COOKIE_PATH
Путь, установленный в cookie языка. Он должен либо совпадать с URL-путем вашей установки Django, либо быть родительским по отношению к нему.
Это полезно, если у вас несколько установок Django работают на одном хост-имени. Они могут использовать разные пути cookie, и каждая установка увидит только своё cookie языка.
Будьте осторожны при обновлении этой настройки на сайте в рабочей среде. Если вы обновите эту настройку, чтобы использовать более глубокий путь, чем раньше, существующие cookie пользователей со старым путём не будут обновлены. Это приведёт к невозможности переключения языка для пользователей сайта до тех пор, пока эти cookie не истекут. Единственный безопасный и надёжный вариант для переключения — изменить имя cookie языка (через настройку LANGUAGE_COOKIE_NAME), и добавить промежуточный слой, который скопирует значение из старого cookie в новый, а затем удалит старый.
LANGUAGES
По умолчанию: Список всех доступных языков. Этот список постоянно расширяется и включение его копии здесь неизбежно быстро устареет. Вы можете увидеть текущий список переведённых языков, посмотрев в django/conf/global_settings.py (или посмотрите онлайн-источник).
Список представляет собой список пар из двух элементов в формате (код языка, language name) — например, ('ja', 'Japanese'). Это определяет, какие языки доступны для выбора языка. См. Международные настройки и локализация.
Как правило, значение по умолчанию должно быть достаточным. Изменяйте эту настройку только если вы хотите ограничить выбор языка подмножеством языков, предоставляемых Django.
Если вы определили настройку LANGUAGES, вы можете пометить названия языков как строки перевода, используя функцию ugettext_lazy().
Вот пример файла настроек:
from django.utils.translation import ugettext_lazy as _
LANGUAGES = [
('de', _('German')),
('en', _('English')),
]
LOCALE_PATHS
По умолчанию: [] (пустой список)
Список каталогов, где Django ищет файлы перевода. См. Как Django находит переводы.
Пример:
LOCALE_PATHS = [
'/home/www/project/common_files/locale',
'/var/local/translations/locale',
]
Django будет искать внутри каждого из этих путей каталоги <locale_code>/LC_MESSAGES содержащие фактические файлы перевода.
LOGGING
По умолчанию: словарь конфигурации ведения журнала.
Структура данных, содержащая конфигурационную информацию. Содержимое этой структуры данных будет передано в качестве аргумента методу конфигурации, описанному в LOGGING_CONFIG.
Среди прочего, конфигурация ведения журнала по умолчанию передает ошибки сервера HTTP 500 в обработчик журнала электронной почты, когда DEBUG имеет значение False. Также см. Настройка ведения журнала.
Вы можете увидеть стандартную конфигурацию ведения журнала, посмотрев в django/utils/log.py (или ознакомиться с источником онлайн).
LOGGING_CONFIG
По умолчанию: 'logging.config.dictConfig'
Путь к вызываемому объекту, который будет использован для настройки ведения журнала в проекте Django. По умолчанию указывает на экземпляр метода конфигурации dictConfig Python.
Если вы установите LOGGING_CONFIG в None, процесс конфигурации ведения журнала будет пропущен.
MANAGERS
По умолчанию: [] (Пустой список)
Список в том же формате, что и ADMINS, который определяет, кому должны отправляться уведомления о сломанных ссылках, когда BrokenLinkEmailsMiddleware включён.
MEDIA_ROOT
По умолчанию: '' (Пустая строка)
Абсолютный путь к файловой системе каталога, который будет содержать загруженные пользователем файлы.
Пример: "/var/www/example.com/media/"
См. также MEDIA_URL.
Предупреждение
MEDIA_ROOT и STATIC_ROOT должны иметь разные значения. До введения STATIC_ROOT было распространено использование MEDIA_ROOT для предоставления статических файлов; однако, так как это может иметь серьёзные последствия для безопасности, существует проверка валидности, чтобы предотвратить это.
MEDIA_URL
По умолчанию: '' (Пустая строка)
URL, обрабатывающий медиа, предоставляемые из MEDIA_ROOT, используемый для управления хранимыми файлами. Он должен заканчиваться слешем, если задан непустым значением. Вам нужно будет настроить эти файлы для их предоставления как в среде разработки, так и в производственной среде.
Если вы хотите использовать {{ MEDIA_URL }} в своих шаблонах, добавьте 'django.template.context_processors.media' в опцию 'context_processors' TEMPLATES.
Пример: "http://media.example.com/"
Предупреждение
Существуют риски безопасности, если вы принимаете загружаемое содержимое от ненадежных пользователей! См. раздел руководства по безопасности о Безопасности пользовательского загружаемого содержимого для получения подробностей об устранении проблем.
Предупреждение
MEDIA_URL и STATIC_URL должны иметь разные значения. Подробнее см. MEDIA_ROOT.
MIDDLEWARE
По умолчанию:: None
Список используемого middleware. См. Middleware.
MIDDLEWARE_CLASSES
Устаревшее начиная с версии 1.10: Средства middleware старого стиля, использующие settings.MIDDLEWARE_CLASSES, устарели. Изменение старых, пользовательских средств middleware и использование параметра MIDDLEWARE.
По умолчанию:
[
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
]
Список классов middleware для использования. Это был параметр по умолчанию, используемый в Django 1.9 и ранее. Django 1.10 представил новый стиль middleware. Если у вас есть более старый проект, использующий этот параметр, вы должны обновить средства middleware, которые вы написали сами, до нового стиля, а затем использовать параметр MIDDLEWARE.
MIGRATION_MODULES
По умолчанию: {} (Пустой словарь)
Словарь, определяющий пакет, где можно найти модули миграции для каждой приложения. Значение по умолчанию — пустой словарь, но имя пакета по умолчанию для модулей миграции — migrations.
Пример:
{'blog': 'blog.db_migrations'}
В этом случае миграции, относящиеся к приложению blog, будут содержаться в пакете blog.db_migrations.
Если вы предоставите аргумент app_label, makemigrations автоматически создаст пакет, если он еще не существует.
Если вы укажите None как значение для приложения, Django будет рассматривать приложение как приложение без миграций, независимо от наличия подмодуля migrations. Это можно использовать, например, в файле настроек тестов для пропуска миграций во время тестирования (таблицы все равно будут созданы для моделей приложений). Если это используется в общих настройках проекта, помните, что для создания таблиц для приложения необходимо использовать опцию migrate
--run-syncdb.
MONTH_DAY_FORMAT
По умолчанию: 'F j'
Формат по умолчанию для использования для полей даты на страницах изменения списка Django admin — и, возможно, другими частями системы — в тех случаях, когда отображаются только месяц и день.
Например, когда страница изменения списка Django admin фильтруется по диапазону дат, заголовок для данного дня отображает день и месяц. Разные языковые локали имеют разные форматы. Например, в английском США это будет «Январь 1», а в испанском — «1 Enero».
Обратите внимание, что если USE_L10N установлено в значение True, то соответствующий формат, заданный локалью, имеет больший приоритет и будет применён.
См. allowed date format strings. Также см. DATE_FORMAT, DATETIME_FORMAT, TIME_FORMAT и YEAR_MONTH_FORMAT.
NUMBER_GROUPING
По умолчанию: 0
Количество цифр, сгруппированных вместе в целой части числа.
Общее использование — это разделитель тысяч. Если эта настройка равна 0, группировка чисел не будет применена. Если эта настройка больше, чем 0, то THOUSAND_SEPARATOR будет использоваться в качестве разделителя между этими группами.
Обратите внимание, что если USE_L10N установлено в True, то формат, заданный локалью, будет иметь больший приоритет и будет применён вместо него.
См. также DECIMAL_SEPARATOR, THOUSAND_SEPARATOR и USE_THOUSAND_SEPARATOR.
PREPEND_WWW
По умолчанию: False
Добавлять ли префикс «www.» к URL-адресам, у которых его нет. Используется только в том случае, если CommonMiddleware установлен (см. Middleware). Также см. APPEND_SLASH.
ROOT_URLCONF
По умолчанию: не определено
Строка, представляющая полный путь импорта Python к вашему корневому URLconf. Например: "mydjangoapps.urls". Может быть переопределён на уровне запроса путём установки атрибута urlconf на объект входящего HttpRequest запроса. Подробнее см. Как Django обрабатывает запрос.
SECRET_KEY
По умолчанию: '' (Пустая строка)
Секретный ключ для конкретной установки Django. Используется для криптографического шифрования и должен быть установлен в уникальное, непредсказуемое значение.
django-admin startproject автоматически добавляет случайный SECRET_KEY к каждому новому проекту.
Использование ключа не должно предполагать, что это текст или байты. Каждое использование должно проходить через force_text() или force_bytes() для преобразования в нужный тип.
Django откажется от запуска, если SECRET_KEY не задан.
Предупреждение
Храните это значение в секрете.
Запуск Django с известным SECRET_KEY нарушает многие меры безопасности Django и может привести к повышению привилегий и уязвимостям удаленного выполнения кода.
Секретный ключ используется для:
- Всех сессий, если вы используете любой другой бэкенд сессий, кроме
django.contrib.sessions.backends.cache, или используете стандартныйget_session_auth_hash(). - Всех сообщений, если вы используете
CookieStorageилиFallbackStorage. - Всех
password_reset()токенов. - Любого использования криптографического шифрования, если не указан другой ключ.
Если вы обновляете свой секретный ключ, все вышеперечисленное будет недействительным. Секретные ключи не используются для паролей пользователей, и изменение ключа не повлияет на них.
Примечание
Файл по умолчанию settings.py созданный django-admin
startproject создаёт уникальный SECRET_KEY для удобства.
SECURE_BROWSER_XSS_FILTER
По умолчанию: False
Если True, SecurityMiddleware устанавливает заголовок X-XSS-Protection: 1; mode=block на всех ответах, где он ещё не установлен.
SECURE_CONTENT_TYPE_NOSNIFF
По умолчанию: False
Если True, SecurityMiddleware устанавливает заголовок X-Content-Type-Options: nosniff на всех ответах, где он ещё не установлен.
SECURE_HSTS_INCLUDE_SUBDOMAINS
По умолчанию: False
Если True, SecurityMiddleware добавляет директиву includeSubDomains к заголовку HTTP Strict Transport Security. Он не действует, если SECURE_HSTS_SECONDS не задано ненулевое значение.
Предупреждение
Неправильная настройка может необратимо (для значения SECURE_HSTS_SECONDS) сломать ваш сайт. Сначала ознакомьтесь с документацией к HTTP Strict Transport Security.
SECURE_HSTS_SECONDS
По умолчанию: 0
Если задано ненулевое целое число, SecurityMiddleware устанавливает заголовок HTTP Strict Transport Security на всех ответах, где он ещё не установлен.
Предупреждение
Неправильная настройка может необратимо (в течение некоторого времени) сломать ваш сайт. Сначала ознакомьтесь с документацией к HTTP Strict Transport Security.
SECURE_PROXY_SSL_HEADER
По умолчанию: None
Кортеж, представляющий комбинацию заголовка HTTP/значения, указывающую, что запрос безопасен. Это контролирует поведение метода is_secure() объекта запроса.
Это требует некоторого объяснения. По умолчанию, is_secure() может определить, является ли запрос безопасным, посмотрев, использует ли запрашиваемый URL «https://». Это важно для защиты CSRF Django и может использоваться вашим собственным кодом или сторонними приложениями.
Однако, если ваше приложение Django расположено за прокси-сервером, прокси-сервер может «поглощать» факт того, что запрос является HTTPS, используя соединение без HTTPS между прокси и Django. В этом случае, is_secure() всегда вернёт False — даже для запросов, сделанных конечным пользователем через HTTPS.
В этой ситуации вы захотите настроить свой прокси-сервер на установку пользовательского заголовка HTTP, который сообщает Django, пришёл ли запрос по HTTPS, и вы захотите установить SECURE_PROXY_SSL_HEADER, чтобы Django знал, какой заголовок искать.
Вам нужно установить кортеж из двух элементов — имя заголовка, которое нужно искать, и требуемое значение. Например:
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
Здесь мы говорим Django, что доверяем заголовку X-Forwarded-Proto от нашего прокси-сервера, и каждый раз, когда его значение равно 'https', запрос гарантированно является безопасным (т.е. он изначально пришёл по HTTPS). Очевидно, вы должны только устанавливать эту настройку, если вы контролируете свой прокси-сервер или имеете гарантию, что он правильно устанавливает/удаляет этот заголовок.
Обратите внимание, что заголовок должен быть в формате, используемом request.META — все заглавные буквы и, вероятно, начинающийся с HTTP_. (Помните, что Django автоматически добавляет 'HTTP_' к началу имён заголовков x, прежде чем сделать заголовок доступным в request.META.)
Предупреждение
Вы, вероятно, откроете уязвимости в своём сайте, если установите это, не понимая, что вы делаете. И если вы не установите его, когда нужно. Серьёзно.
Убедитесь, что ВСЕ из следующего истинно перед установкой этого (предполагая значения из примера выше):
- Ваше приложение Django находится за прокси-сервером.
- Ваш прокси-сервер удаляет заголовок
X-Forwarded-Protoиз всех входящих запросов. Другими словами, если конечные пользователи включают этот заголовок в свои запросы, прокси-сервер его удалит. - Ваш прокси-сервер устанавливает заголовок
X-Forwarded-Protoи отправляет его Django, но только для запросов, которые изначально пришли по HTTPS.
Если хоть одно из этих условий не выполняется, вы должны оставить эту настройку в значении None и найти другой способ определения HTTPS, возможно, с помощью пользовательского middleware.
SECURE_REDIRECT_EXEMPT
По умолчанию: [] (Пустой список)
Если путь к URL соответствует регулярному выражению в этом списке, запрос не будет перенаправлен на HTTPS. Если SECURE_SSL_REDIRECT равен False, эта настройка не имеет эффекта.
SECURE_SSL_HOST
По умолчанию: None
Если строка (например, secure.example.com), все перенаправления SSL будут направлены на этот хост, а не на первоначально запрашиваемый хост (например, www.example.com). Если SECURE_SSL_REDIRECT равно False, эта настройка не имеет эффекта.
SECURE_SSL_REDIRECT
По умолчанию: False
Если True, SecurityMiddleware перенаправляет все запросы без HTTPS на HTTPS (за исключением тех URL, которые соответствуют регулярному выражению, указанному в SECURE_REDIRECT_EXEMPT).
Примечание
Если включение этой настройки приводит к бесконечным перенаправлениям, это, вероятно, означает, что ваш сайт работает за прокси-сервером и не может определить, какие запросы безопасны, а какие нет. Ваш прокси-сервер, вероятно, устанавливает заголовок для указания безопасных запросов; вы можете исправить проблему, выяснив, какой это заголовок, и настроив настройку SECURE_PROXY_SSL_HEADER соответственно.
SERIALIZATION_MODULES
По умолчанию: Не определено
Словарь модулей, содержащих определения сериализаторов (указаны как строки), с ключами в виде строковых идентификаторов для типа сериализации. Например, для определения сериализатора YAML используйте:
SERIALIZATION_MODULES = {'yaml': 'path.to.yaml_serializer'}
SERVER_EMAIL
По умолчанию: 'root@localhost'
Электронный адрес, с которого отправляются сообщения об ошибках, такие как те, что отправляются адресатам ADMINS и MANAGERS.
Почему мои письма отправляются с другого адреса?
Этот адрес используется только для сообщений об ошибках. Это не адрес, с которого отправляются обычные электронные письма с помощью send_mail(); для этого см. DEFAULT_FROM_EMAIL.
SHORT_DATE_FORMAT
Значение по умолчанию: 'm/d/Y' (например, 12/31/2003)
Доступный формат, который можно использовать для отображения полей даты в шаблонах. Обратите внимание, что если USE_L10N установлено в True, то соответствующий формат, определённый локалью, имеет больший приоритет и будет применён. См. allowed date format strings.
См. также DATE_FORMAT и SHORT_DATETIME_FORMAT.
SHORT_DATETIME_FORMAT
Значение по умолчанию: 'm/d/Y P' (например, 12/31/2003 4 p.m.)
Доступный формат, который можно использовать для отображения полей даты и времени в шаблонах. Обратите внимание, что если USE_L10N установлено в True, то соответствующий формат, определённый локалью, имеет больший приоритет и будет применён. См. allowed date format strings.
См. также DATE_FORMAT и SHORT_DATE_FORMAT.
SIGNING_BACKEND
Значение по умолчанию: 'django.core.signing.TimestampSigner'
Бэкенд, используемый для подписи куки и других данных.
См. также документацию по криптографической подписи.
SILENCED_SYSTEM_CHECKS
Значение по умолчанию: [] (Пустой список)
Список идентификаторов сообщений, генерируемых системой проверки (например, ["models.W001"]), которые вы хотите постоянно игнорировать. Заглушённые проверки не будут выводиться в консоль.
В более старых версиях заглушённые сообщения уровня ERROR или выше выводились в консоль.
См. также документацию по системе проверки.
TEMPLATES
Значение по умолчанию: [] (Пустой список)
Список, содержащий настройки всех движков шаблонов, которые будут использоваться с Django. Каждый элемент списка — словарь с параметрами для отдельного движка.
Вот простой пример, который указывает Django движку шаблонов загружать шаблоны из подкаталога templates внутри каждой установленной приложения:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'APP_DIRS': True,
},
]
Для всех бэкендов доступны следующие параметры.
BACKEND
Значение по умолчанию: Не определено
Используемый движок шаблонов. Встроенные движки шаблонов:
'django.template.backends.django.DjangoTemplates''django.template.backends.jinja2.Jinja2'
Можно использовать движок шаблонов, который не поставляется с Django, установив BACKEND на полный путь (например, 'mypackage.whatever.Backend').
NAME
Значение по умолчанию: см. ниже
Псевдоним для этого конкретного движка шаблонов. Это идентификатор, позволяющий выбрать движок для отображения. Псевдонимы должны быть уникальными для всех настроенных движков шаблонов.
По умолчанию это имя модуля, определяюшего класс движка, то есть предпоследний фрагмент BACKEND, если он не предоставлен. Например, если бэкенд 'mypackage.whatever.Backend', то его имя по умолчанию 'whatever'.
DIRS
Значение по умолчанию: [] (Пустой список)
Директории, в которых движок должен искать исходные файлы шаблонов в порядке поиска.
APP_DIRS
Значение по умолчанию: False
Нужно ли движку искать исходные файлы шаблонов внутри установленных приложений.
Примечание
Шаблон settings.py по умолчанию, созданный командой django-admin
startproject, устанавливает 'APP_DIRS': True.
OPTIONS
Значение по умолчанию: {} (Пустой словарь)
Дополнительные параметры для передачи движку шаблонов. Доступные параметры зависят от движка шаблонов. См. DjangoTemplates и Jinja2 для параметров встроенных бэкендов.
TEST_RUNNER
Значение по умолчанию: 'django.test.runner.DiscoverRunner'
Имя класса для запуска набора тестов. См. Использование разных фреймворков тестирования.
TEST_NON_SERIALIZED_APPS
Значение по умолчанию: [] (Пустой список)
Для восстановления состояния базы данных между тестами для TransactionTestCase и баз данных без транзакций Django будет сериализовать содержимое всех приложений при запуске набора тестов, чтобы затем перегрузить его перед выполнением тестов, которые нуждаются в этом.
Это замедляет время запуска запуска тестов; если у вас есть приложения, которые, по вашему мнению, не нуждаются в этой функции, вы можете добавить их полные имена сюда (например, 'django.contrib.contenttypes'), чтобы исключить их из этого процесса сериализации.
THOUSAND_SEPARATOR
Значение по умолчанию: ',' (Запятая)
Разделитель тысяч по умолчанию, используемый при форматировании чисел. Эта настройка используется только тогда, когда USE_THOUSAND_SEPARATOR установлено в True и NUMBER_GROUPING больше 0.
Обратите внимание, что если USE_L10N установлено в True, то соответствующий формат, определённый локалью, имеет больший приоритет и будет применён вместо него.
См. также NUMBER_GROUPING, DECIMAL_SEPARATOR и USE_THOUSAND_SEPARATOR.
TIME_FORMAT
Значение по умолчанию: 'P' (например, 4 p.m.)
Формат по умолчанию для отображения полей времени в любой части системы. Обратите внимание, что если USE_L10N установлено в True, то соответствующий формат, определённый локалью, имеет больший приоритет и будет применён. См. allowed date format strings.
См. также DATE_FORMAT и DATETIME_FORMAT.
TIME_INPUT_FORMATS
Значение по умолчанию:
[
'%H:%M:%S', # '14:30:59'
'%H:%M:%S.%f', # '14:30:59.000200'
'%H:%M', # '14:30'
]
Список форматов, которые будут приняты при вводе данных в поле времени. Форматы будут пробоваться в порядке, используя первый допустимый. Обратите внимание, что эти строковые форматы используют синтаксис модуля datetime Python, а не строковые форматы из date фильтра шаблона.
Если USE_L10N установлено в True, то соответствующий формат, определённый локалью, имеет больший приоритет и будет применён вместо него.
См. также DATE_INPUT_FORMATS и DATETIME_INPUT_FORMATS.
TIME_ZONE
Значение по умолчанию: 'America/Chicago'
Строка, представляющая часовой пояс для этой установки, или None. См. список часовых поясов.
Примечание
С момента первого выпуска Django с настройкой TIME_ZONE установленной в 'America/Chicago', глобальная настройка (используемая, если ничего не определено в проекте settings.py) остаётся 'America/Chicago' для обеспечения обратной совместимости. Новые шаблоны проектов по умолчанию устанавливают 'UTC'.
Обратите внимание, что это не обязательно часовой пояс сервера. Например, один сервер может обслуживать несколько сайтов на Django, каждый со своей настройкой часового пояса.
Если USE_TZ установлено в False, это часовой пояс, в котором Django будет хранить все даты и время. Если USE_TZ установлено в True, это часовой пояс по умолчанию, который Django будет использовать для отображения дат и времени в шаблонах и для интерпретации дат и времени, введённых в формы.
Django устанавливает переменную os.environ['TZ'] в часовой пояс, который вы указали в настройке TIME_ZONE. Таким образом, все ваши представления и модели будут автоматически работать в этом часовом поясе. Однако Django не установит переменную среды TZ в следующих случаях:
- Если вы используете опцию ручного конфигурирования, как описано в ручном конфигурировании настроек, или
- Если вы указываете
TIME_ZONE = None. Это заставит Django использовать системную часовую зону по умолчанию. Однако это не рекомендуется, когдаUSE_TZ = True, потому что это делает преобразования между местным временем и UTC менее надёжными.
Если Django не устанавливает TZ переменную среды, вам необходимо убедиться, что ваши процессы работают в правильной среде.
Примечание
Django не может надёжно использовать альтернативные часовые зоны в среде Windows. Если вы запускаете Django на Windows, TIME_ZONE должен быть настроен в соответствии с системной часовой зоной.
USE_ETAGS
Булевое значение, определяющее, нужно ли выводить заголовок ETag. Это экономит полосу пропускания, но замедляет производительность. Используется CommonMiddleware и в фреймворке кэширования.
USE_I18N
По умолчанию: True
Булевое значение, определяющее, следует ли включать систему перевода Django. Это позволяет легко выключить её для повышения производительности. Если установлено значение False, Django выполнит некоторые оптимизации, чтобы не загружать механизм перевода.
См. также LANGUAGE_CODE, USE_L10N и USE_TZ.
Примечание
Файл settings.py по умолчанию, созданный командой django-admin
startproject, включает USE_I18N = True для удобства.
USE_L10N
По умолчанию: False
Булевое значение, определяющее, будет ли включено локализованное форматирование данных по умолчанию. Если установлено значение True, Django будет отображать числа и даты в формате текущего языка.
См. также LANGUAGE_CODE, USE_I18N и USE_TZ.
Примечание
Файл settings.py по умолчанию, созданный командой django-admin
startproject, включает USE_L10N = True для удобства.
USE_THOUSAND_SEPARATOR
По умолчанию: False
Булевое значение, определяющее, нужно ли отображать числа с разделителем тысяч. Когда USE_L10N установлено в значение True, и если это значение также установлено в True, Django будет использовать значения из THOUSAND_SEPARATOR и NUMBER_GROUPING для форматирования чисел, если в локали нет уже существующего разделителя тысяч. Если в формате локали есть разделитель тысяч, он будет иметь более высокий приоритет и будет применён вместо него.
См. также DECIMAL_SEPARATOR, NUMBER_GROUPING и THOUSAND_SEPARATOR.
USE_TZ
По умолчанию: False
Булевое значение, определяющее, будут ли даты и время по умолчанию с учётом часовой зоны. Если установлено значение True, Django будет использовать даты и время с учётом часовой зоны. В противном случае Django будет использовать локальное время без учёта часовой зоны.
См. также TIME_ZONE, USE_I18N и USE_L10N.
Примечание
Файл settings.py по умолчанию, созданный командой django-admin startproject, включает USE_TZ = True для удобства.
USE_X_FORWARDED_HOST
По умолчанию: False
Булевое значение, определяющее, использовать ли заголовок X-Forwarded-Host вместо заголовка Host. Это следует включить только если используется прокси, который устанавливает этот заголовок.
Этот параметр имеет приоритет над USE_X_FORWARDED_PORT. Согласно RFC 7239#page-7, заголовок X-Forwarded-Host может включать номер порта, в этом случае не следует использовать USE_X_FORWARDED_PORT.
USE_X_FORWARDED_PORT
По умолчанию: False
Булевое значение, определяющее, использовать ли заголовок X-Forwarded-Port вместо заголовка SERVER_PORT META переменной. Это следует включить только если используется прокси, который устанавливает этот заголовок.
USE_X_FORWARDED_HOST имеет приоритет над этим параметром.
WSGI_APPLICATION
По умолчанию: None
Полный путь к объекту WSGI-приложения Python, который будут использовать встроенные серверы Django (например, runserver). Команда управления django-admin
startproject создаст простой файл wsgi.py с вызываемым application в нём и установит этот параметр на это application.
Если не установлено, будет использовано значение django.core.wsgi.get_wsgi_application(). В этом случае поведение runserver будет идентично предыдущим версиям Django.
YEAR_MONTH_FORMAT
По умолчанию: 'F Y'
Формат по умолчанию для полей даты на страницах изменения списков Django admin – и, возможно, в других частях системы – в случаях, когда отображаются только год и месяц.
Например, когда страница изменения списка Django admin фильтруется по диапазону дат, заголовок для заданного месяца отображает месяц и год. Разные локали имеют разные форматы. Например, американский английский будет отображать "Январь 2006", а другая локализация может отобразить "2006/Январь".
Обратите внимание, что если USE_L10N установлено в True, соответствующий формат, заданный локалью, имеет более высокий приоритет и будет применён.
См. allowed date format strings. См. также DATE_FORMAT, DATETIME_FORMAT, TIME_FORMAT и MONTH_DAY_FORMAT.
X_FRAME_OPTIONS
По умолчанию: 'SAMEORIGIN'
Значение по умолчанию для заголовка X-Frame-Options, используемого XFrameOptionsMiddleware. См. документацию по защите от кликджекинга.
Auth
Настройки для django.contrib.auth.
AUTHENTICATION_BACKENDS
По умолчанию: ['django.contrib.auth.backends.ModelBackend']
Список классов бэкендов аутентификации (в виде строк) для использования при попытке аутентификации пользователя. См. документацию по бэкендам аутентификации для получения подробной информации.
AUTH_USER_MODEL
По умолчанию: 'auth.User'
Модель, используемая для представления пользователя. См. замену пользовательской модели.
Предупреждение
Вы не можете изменить настройку AUTH_USER_MODEL в процессе работы проекта (т.е. после создания и миграции моделей, которые зависят от неё) без значительных усилий. Она предназначена для настройки в начале проекта, а модель, на которую она ссылается, должна быть доступна в первой миграции приложения, в котором она находится. См. замену пользовательской модели для получения более подробной информации.
LOGIN_REDIRECT_URL
По умолчанию: '/accounts/profile/'
URL, на который перенаправляются запросы после входа в систему, когда представление contrib.auth.login не получает параметр next.
Используется, например, декоратором login_required().
Этот параметр также принимает названия URL-шаблонов, что позволяет сократить дублирование конфигурации, так как вам не нужно определять URL в двух местах (settings и URLconf).
LOGIN_URL
По умолчанию: '/accounts/login/'
URL, на который перенаправляются запросы для входа в систему, особенно при использовании декоратора login_required().
Это значение также принимает именные URL-шаблоны, которые можно использовать для уменьшения дублирования конфигурации, так как вам не нужно определять URL в двух местах (settings и URLconf).
LOGOUT_REDIRECT_URL
Значение по умолчанию: None
URL, на который перенаправляются запросы после выхода пользователя из системы с помощью представления logout() (если представление не получает аргумент next_page).
Если None, перенаправление не будет выполнено, и будет отображено представление выхода.
Это значение также принимает именные URL-шаблоны, которые можно использовать для уменьшения дублирования конфигурации, так как вам не нужно определять URL в двух местах (settings и URLconf).
PASSWORD_RESET_TIMEOUT_DAYS
Значение по умолчанию: 3
Количество дней, в течение которых ссылка для сброса пароля действительна. Используется механизмом сброса пароля django.contrib.auth.
PASSWORD_HASHERS
Значение по умолчанию:
[
'django.contrib.auth.hashers.PBKDF2PasswordHasher',
'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
'django.contrib.auth.hashers.Argon2PasswordHasher',
'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
'django.contrib.auth.hashers.BCryptPasswordHasher',
]
Из списка значений по умолчанию были удалены следующие хешеры:
'django.contrib.auth.hashers.SHA1PasswordHasher' 'django.contrib.auth.hashers.MD5PasswordHasher' 'django.contrib.auth.hashers.UnsaltedSHA1PasswordHasher' 'django.contrib.auth.hashers.UnsaltedMD5PasswordHasher' 'django.contrib.auth.hashers.CryptPasswordHasher'
Рассмотрите использование обернутого хешера паролей для повышения устойчивости хэшей в вашей базе данных. Если это не представляется возможным, добавьте это значение в свой проект и верните любые необходимые хешеры.
Также был добавлен Argon2PasswordHasher.
AUTH_PASSWORD_VALIDATORS
Значение по умолчанию: [] (Пустой список)
Список валидаторов, используемых для проверки сложности паролей пользователей. См. Валидация паролей для получения более подробной информации. По умолчанию валидация не выполняется, и все пароли принимаются.
Сообщения
Параметры для django.contrib.messages.
MESSAGE_LEVEL
Значение по умолчанию: messages.INFO
Устанавливает минимальный уровень сообщений, который будет регистрироваться системой сообщений. См. уровни сообщений для получения более подробной информации.
Важно
Если вы переопределяете MESSAGE_LEVEL в файле настроек и используете встроенные константы, вы должны напрямую импортировать модуль констант, чтобы избежать потенциальных циклических импортов, например:
from django.contrib.messages import constants as message_constants MESSAGE_LEVEL = message_constants.DEBUG
Если необходимо, вы можете указать числовые значения констант в соответствии со значениями в таблице констант выше.
MESSAGE_STORAGE
Значение по умолчанию: 'django.contrib.messages.storage.fallback.FallbackStorage'
Определяет, где Django хранит данные сообщений. Допустимые значения:
'django.contrib.messages.storage.fallback.FallbackStorage''django.contrib.messages.storage.session.SessionStorage''django.contrib.messages.storage.cookie.CookieStorage'
См. хранилища данных сообщений для получения более подробной информации.
Хранилища, использующие cookie – CookieStorage и FallbackStorage – используют значение SESSION_COOKIE_DOMAIN, SESSION_COOKIE_SECURE и SESSION_COOKIE_HTTPONLY при установке cookie.
MESSAGE_TAGS
{
messages.DEBUG: 'debug',
messages.INFO: 'info',
messages.SUCCESS: 'success',
messages.WARNING: 'warning',
messages.ERROR: 'error',
}
Это задаёт соответствие между уровнем сообщения и меткой сообщения, которая обычно отображается в HTML как класс CSS. Если вы задаёте значение, оно будет расширять значение по умолчанию. Это означает, что вам нужно указывать только те значения, которые нужно переопределить. Подробнее см. отображение сообщений выше.
Важно
Если вы переопределяете MESSAGE_TAGS в файле настроек и используете встроенные константы, вы должны напрямую импортировать модуль constants , чтобы избежать потенциальных циклических импортов, например:
from django.contrib.messages import constants as message_constants
MESSAGE_TAGS = {message_constants.INFO: ''}
Если необходимо, вы можете указать числовые значения констант в соответствии со значениями в таблице констант выше.
Сессии
Настройки для django.contrib.sessions.
SESSION_CACHE_ALIAS
Значение по умолчанию: 'default'
Если вы используете хранение сессий на основе кеша, это выбирает используемый кеш.
SESSION_COOKIE_AGE
Срок действия cookie сессии в секундах.
SESSION_COOKIE_DOMAIN
Домен для использования с cookie сессии. Установите это значение в строку, например, ".example.com" (обратите внимание на предшествующую точку!), для cookie с несколькими доменами, или используйте None для обычного cookie домена.
Будьте осторожны при обновлении этого параметра на сайте в режиме работы. Если вы обновите это значение, чтобы включить cookie с несколькими доменами на сайте, который ранее использовал стандартный cookie домена, существующие cookie пользователей будут установлены на старый домен. Это может привести к невозможности входа в систему, пока эти cookie не истекут.
Это значение также влияет на cookie, установленные django.contrib.messages.
SESSION_COOKIE_HTTPONLY
Использовать флаг HTTPOnly для cookie сессии. Если это значение установлено в True, клиентский JavaScript не сможет получить доступ к cookie сессии.
HTTPOnly – это флаг, включенный в заголовок ответа HTTP Set-Cookie. Он не является частью стандарта RFC 2109 для cookie, и не поддерживается последовательно всеми браузерами. Однако, когда он поддерживается, это может быть полезным способом снижения риска доступа клиентского скрипта к защищённым данным cookie.
Включение флага делает менее тривиальной атаку, при которой уязвимость cross-site scripting может быть использована для полного захвата сессии пользователя. Нет особых оснований оставлять этот флаг выключенным, так как если ваш код зависит от чтения cookie сессии из JavaScript, вы, вероятно, делаете что-то не так.
SESSION_COOKIE_NAME
Имя cookie, используемое для сессий. Оно может быть любым (только если оно отличается от других имён cookie в вашем приложении).
SESSION_COOKIE_PATH
Путь, устанавливаемый для cookie сессии. Он должен соответствовать пути URL вашей установки Django или быть родительским каталогом этого пути.
Это полезно, если у вас несколько экземпляров Django работают под одним и тем же именем хоста. Они могут использовать разные пути cookie, и каждый экземпляр будет видеть только свои собственные cookie сессии.
SESSION_COOKIE_SECURE
Использовать ли secure cookie для cookie сессии. Если это значение установлено в True, cookie будет помечен как «безопасный», что означает, что браузеры могут гарантировать, что cookie будет отправлен только через HTTPS-соединение.
Так как для перехвата сессии пользователя легко используется пакетный сниффер (например, Firesheep), если cookie сессии отправляется без шифрования, нет веских оснований оставлять этот флаг выключенным. Это предотвратит использование сессий на незащищённых запросах, что хорошо.
SESSION_ENGINE
Значение по умолчанию: 'django.contrib.sessions.backends.db'
Определяет, где Django хранит данные сессии. Включённые движки:
'django.contrib.sessions.backends.db''django.contrib.sessions.backends.file''django.contrib.sessions.backends.cache''django.contrib.sessions.backends.cached_db''django.contrib.sessions.backends.signed_cookies'
См. Настройка движка сессий для получения более подробной информации.
SESSION_EXPIRE_AT_BROWSER_CLOSE
Значение по умолчанию: False
Использовать ли истечение сессии, когда пользователь закрывает свой браузер. См. Сессии, ограниченные временем работы браузера, по сравнению с постоянными сессиями.
SESSION_FILE_PATH
Значение по умолчанию: None
Если используется файловая система хранения сессий, это задаёт директорию, в которой Django будет хранить данные сессий. При использовании значения по умолчанию (None) Django будет использовать стандартную временную директорию системы.
SESSION_SAVE_EVERY_REQUEST
Значение по умолчанию: False
Сохранять ли данные сессии при каждом запросе. Если это False (значение по умолчанию), то данные сессии будут сохранены только в том случае, если они были изменены — то есть, если какие-либо значения в словаре были назначены или удалены. Пустые сессии не будут созданы, даже если эта настройка активна.
SESSION_SERIALIZER
Значение по умолчанию: 'django.contrib.sessions.serializers.JSONSerializer'
Полный путь импорта класса сериализатора, который необходимо использовать для сериализации данных сессий. Доступные сериализаторы:
'django.contrib.sessions.serializers.PickleSerializer''django.contrib.sessions.serializers.JSONSerializer'
См. Сериализация сессий для получения подробной информации, включая предупреждение о возможной удалённой атаке с выполнением кода при использовании PickleSerializer.
Сайты
Настройки для django.contrib.sites.
SITE_ID
Значение по умолчанию: Не определено
Идентификатор текущего сайта в виде целого числа в таблице базы данных django_site. Используется для того, чтобы приложения могли связываться со специфическими сайтами, и одна база данных могла управлять контентом для нескольких сайтов.
Статические файлы
Настройки для django.contrib.staticfiles.
STATIC_ROOT
Значение по умолчанию: None
Абсолютный путь к директории, в которую collectstatic будет собирать статические файлы для развертывания.
Пример: "/var/www/example.com/static/"
Если приложение staticfiles включено (как в шаблоне проекта по умолчанию), команда управления collectstatic соберет статические файлы в эту директорию. См. руководство по управлению статическими файлами для получения более подробной информации о применении.
Предупреждение
Это должна быть пустая целевая директория для сбора статических файлов из их постоянных расположений в одну директорию для удобства развертывания; это не место для постоянного хранения статических файлов. Вы должны хранить их в директориях, которые будут находиться в директориях поиска staticfiles, которые по умолчанию находятся в поддиректориях приложений и любых директориях, включенных в STATICFILES_DIRS.
STATIC_URL
Значение по умолчанию: None
URL для ссылки на статические файлы, расположенные в STATIC_ROOT.
Пример: "/static/" или "http://static.example.com/"
Если не None, это будет использоваться в качестве базового пути для определения ресурсов (класс Media ) и приложения staticfiles.
Он должен заканчиваться слешем, если задан ненулевым значением.
Вам может потребоваться настроить эти файлы для обработки в разработке, и вам определённо понадобится это сделать во время развертывания.
STATICFILES_DIRS
Значение по умолчанию: [] (Пустой список)
Эта настройка определяет дополнительные расположения, которые приложение staticfiles будет просматривать, если включён поиск FileSystemFinder, например, при использовании команды управления collectstatic или findstatic, или при использовании представления для обслуживания статических файлов.
Это должно быть задано в виде списка строк, содержащих полные пути к дополнительным директориям файлов, например:
STATICFILES_DIRS = [
"/home/special.polls.com/polls/static",
"/home/polls.com/polls/static",
"/opt/webfiles/common",
]
Обратите внимание, что эти пути должны использовать косые черты, даже в Windows (например, "C:/Users/user/mysite/extra_static_content").
Префиксы (необязательно)
Если вам нужно ссылаться на файлы в одном из расположений с дополнительным именем пространства имён, вы можете необязательно указать префикс как (prefix, path) кортежи, например:
STATICFILES_DIRS = [
# ...
("downloads", "/opt/webfiles/stats"),
]
Например, предполагая, что STATIC_URL задано как '/static/', команда управления collectstatic соберет файлы "stats" в поддиректории 'downloads' директории STATIC_ROOT.
Это позволит вам ссылаться на локальный файл '/opt/webfiles/stats/polls_20101022.tar.gz' с '/static/downloads/polls_20101022.tar.gz' в ваших шаблонах, например:
<a href="{% static "downloads/polls_20101022.tar.gz" %}">
STATICFILES_STORAGE
Значение по умолчанию: 'django.contrib.staticfiles.storage.StaticFilesStorage'
Движок хранения файлов, используемый при сборе статических файлов командой управления collectstatic.
Готовый экземпляр хранилища, определённого в этой настройке, можно найти в django.contrib.staticfiles.storage.staticfiles_storage.
Пример см. в Обслуживание статических файлов с облачного сервиса или CDN.
STATICFILES_FINDERS
Значение по умолчанию:
[
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
]
Список финдер-бекендов, которые знают, как находить статические файлы в различных расположениях.
По умолчанию ищут файлы, хранящиеся в настройке STATICFILES_DIRS (используя django.contrib.staticfiles.finders.FileSystemFinder) и в поддиректории static каждого приложения (используя django.contrib.staticfiles.finders.AppDirectoriesFinder). Если присутствует несколько файлов с одинаковым именем, будет использован первый найденный файл.
Один финдер отключен по умолчанию: django.contrib.staticfiles.finders.DefaultStorageFinder. Если добавить его в настройку STATICFILES_FINDERS, он будет искать статические файлы в стандартном хранилище, определённом настройкой DEFAULT_FILE_STORAGE.
Примечание
При использовании финдера AppDirectoriesFinder, убедитесь, что ваши приложения доступны для staticfiles. Достаточно добавить приложение в настройку INSTALLED_APPS вашего сайта.
Файндеры статических файлов в настоящее время считаются частным интерфейсом, и этот интерфейс не документирован.
Индекс тематических настроек ядра
Кэш
База данных
Отладка
Почта
ADMINSDEFAULT_CHARSETDEFAULT_FROM_EMAILEMAIL_BACKENDEMAIL_FILE_PATHEMAIL_HOSTEMAIL_HOST_PASSWORDEMAIL_HOST_USEREMAIL_PORTEMAIL_SSL_CERTFILEEMAIL_SSL_KEYFILEEMAIL_SUBJECT_PREFIXEMAIL_TIMEOUTEMAIL_USE_TLSMANAGERSSERVER_EMAIL
Обработка ошибок
Настройки загрузки файлов
DEFAULT_FILE_STORAGEFILE_CHARSETFILE_UPLOAD_HANDLERSFILE_UPLOAD_MAX_MEMORY_SIZEFILE_UPLOAD_PERMISSIONSFILE_UPLOAD_TEMP_DIRMEDIA_ROOTMEDIA_URL
Глобализация (i18n/l10n)
DATE_FORMATDATE_INPUT_FORMATSDATETIME_FORMATDATETIME_INPUT_FORMATSDECIMAL_SEPARATORFIRST_DAY_OF_WEEKFORMAT_MODULE_PATHLANGUAGE_CODELANGUAGE_COOKIE_AGELANGUAGE_COOKIE_DOMAINLANGUAGE_COOKIE_NAMELANGUAGE_COOKIE_PATHLANGUAGESLOCALE_PATHSMONTH_DAY_FORMATNUMBER_GROUPINGSHORT_DATE_FORMATSHORT_DATETIME_FORMATTHOUSAND_SEPARATORTIME_FORMATTIME_INPUT_FORMATSTIME_ZONEUSE_I18NUSE_L10NUSE_THOUSAND_SEPARATORUSE_TZYEAR_MONTH_FORMAT
HTTP
DATA_UPLOAD_MAX_MEMORY_SIZEDATA_UPLOAD_MAX_NUMBER_FIELDSDEFAULT_CHARSETDEFAULT_CONTENT_TYPEDISALLOWED_USER_AGENTSFORCE_SCRIPT_NAMEINTERNAL_IPSMIDDLEWAREMIDDLEWARE_CLASSES- Безопасность
SIGNING_BACKENDUSE_ETAGSUSE_X_FORWARDED_HOSTUSE_X_FORWARDED_PORTWSGI_APPLICATION
Ведение журнала
Модели
Безопасность
- Защита от межсайтовых поддельных запросов
SECRET_KEYX_FRAME_OPTIONS
Сериализация
Шаблоны
Тестирование
- База данных:
TEST TEST_NON_SERIALIZED_APPSTEST_RUNNER
URL
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/1.10/ref/settings/