Настройки
Предупреждение
Будьте осторожны при перезаписи настроек, особенно когда значение по умолчанию — это непустой список или словарь, например, 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 и AdminEmailHandler настроено в LOGGING (сделано по умолчанию), Django отправляет этим людям подробности об исключениях, возникших в цикле запроса/ответа.
Каждый элемент в списке должен быть кортежем (Полное имя, адрес электронной почты). Пример:
[('John', 'john@example.com'), ('Mary', 'mary@example.com')]
ALLOWED_HOSTS
По умолчанию: [] (Пустой список)
Список строк, представляющих имена хоста/домена, которые этот сайт Django может обслуживать. Это мера безопасности для предотвращения атак с использованием заголовков HTTP Host, которые возможны даже при многих, на первый взгляд безопасных, конфигурациях веб-сервера.
Значения в этом списке могут быть полными именами (например, 'www.example.com'), в этом случае они будут точно сопоставляться с заголовком запроса Host (регистронезависимо, без порта). Значение, начинающееся с точки, может использоваться как шаблон поддомена: '.example.com' будет соответствовать example.com, www.example.com, и любому другому поддомену example.com. Значение '*' будет соответствовать всему; в этом случае вы несете ответственность за предоставление собственной валидации заголовка Host (возможно, в средстве; если так, это средство должно быть указано первым в 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]'].
ALLOWED_HOSTS также проверяется во время выполнения тестов.
Эта проверка применяется только через get_host(); если ваш код обращается к заголовку Host непосредственно из request.META, вы обходите эту защиту безопасности.
В более старых версиях, ALLOWED_HOSTS не проверялось во время выполнения тестов.
В более старых версиях, ALLOWED_HOSTS не проверялось, если DEBUG=True. Это также было изменено в Django 1.10.3, 1.9.11 и 1.8.16 для предотвращения атак DNS ребаиндинга.
APPEND_SLASH
По умолчанию: True
Если установлено в True, если URL запроса не соответствует ни одному из шаблонов в URLconf и не оканчивается на слеш, будет выполнен HTTP-перенаправление на тот же URL со слешем в конце. Обратите внимание, что перенаправление может привести к потере любых данных, отправленных в запросе POST.
Настройка APPEND_SLASH используется только если установлено CommonMiddleware (см. Средства). См. также 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
Подключение к кэшу, используемое для средства кэширования.
CACHE_MIDDLEWARE_KEY_PREFIX
По умолчанию: '' (Пустая строка)
Строка, которая будет добавлена в качестве префикса к ключам кэша, генерируемым средством кэширования. Этот префикс комбинируется с настройкой KEY_PREFIX; он не заменяет его.
См. фреймворк кэширования Django.
CACHE_MIDDLEWARE_SECONDS
По умолчанию: 600
Количество секунд по умолчанию для кеширования страницы для средства кэширования.
См. фреймворк кэширования Django.
CSRF_COOKIE_AGE
Возраст куки CSRF, в секундах.
Причина установки длительного времени истечения срока действия заключается в том, чтобы избежать проблем в случае закрытия браузера пользователем или добавления страницы в закладки, а затем загрузки этой страницы из кэша браузера. Без постоянных кукис отправка формы в этом случае завершится неудачей.
Некоторые браузеры (в частности, Internet Explorer) могут запретить использование постоянных кукис или могут повредить индексы в файле кукис на диске, что приведет к (иногда прерывистому) отказу проверок CSRF-защиты. Измените это значение на None, чтобы использовать кукис CSRF на основе сеанса, которые хранят кукис в памяти вместо постоянного хранилища.
CSRF_COOKIE_DOMAIN
Домен, который будет использоваться при установке куки CSRF. Это может быть полезно для легкого исключения кросс-доменных запросов из обычной защиты от подделки межсайтовых запросов. Он должен быть установлен на строку, например, "example.com", чтобы разрешить запрос POST из формы на одном поддомене, чтобы его принял вид, предоставленный другим поддоменом.
Обратите внимание, что наличие этого параметра не подразумевает, что защита Django от подделки межсайтовых запросов по умолчанию защищена от межподдоменных атак — см. раздел Ограничения CSRF.
CSRF_COOKIE_HTTPONLY
Использовать HttpOnly флаг на куки CSRF. Если это значение установлено на True, клиентский JavaScript не сможет получить доступ к куки CSRF.
Назначение куки CSRF как HttpOnly не обеспечивает никакой практической защиты, потому что CSRF защищает только от атак между доменными зонами. Если злоумышленник может прочитать куки через JavaScript, он уже находится в той же доменной зоне, что и браузер, так что он может делать все, что ему заблагорассудится. (XSS — гораздо большая брешь, чем CSRF).
Хотя настройка предлагает небольшую практическую пользу, ее иногда требуют аудиторы безопасности.
Если вы включили это и вам нужно отправить значение токена CSRF с запросом AJAX, ваш JavaScript должен извлекать значение из скрытого поля ввода токена CSRF на странице, а не из куки.
См. SESSION_COOKIE_HTTPONLY для получения дополнительной информации о HttpOnly.
CSRF_COOKIE_NAME
Имя куки для использования маркера аутентификации CSRF. Это может быть любое имя (при условии, что оно отличается от других имен куки в вашем приложении). См. Защита от подделки межсайтовых запросов.
CSRF_COOKIE_PATH
Путь, установленный в куки CSRF. Он должен соответствовать пути URL вашей установки Django или быть родительским по отношению к этому пути.
Это полезно, если у вас несколько экземпляров Django, работающих под одним именем хоста. Они могут использовать разные пути куки, и каждый экземпляр будет видеть только свои собственные куки CSRF.
CSRF_COOKIE_SECURE
Использовать защищенную куки для куки CSRF. Если это значение установлено на True, куки будет помечена как «защищенная», что означает, что браузеры могут гарантировать, что куки отправляется только с подключением HTTPS.
CSRF_USE_SESSIONS
По умолчанию: False
Хранить ли токен CSRF в сессии пользователя вместо куки. Требуется использование django.contrib.sessions.
Хранение токена CSRF в куки (по умолчанию в Django) безопасно, но хранение его в сессии является общей практикой в других веб-фреймворках и поэтому иногда требуется аудиторами безопасности.
CSRF_FAILURE_VIEW
По умолчанию: 'django.views.csrf.csrf_failure'
Точечный путь к функции представления, которая будет использоваться, когда входящий запрос отклоняется защитой от подделки межсайтовых запросов. Функция должна иметь такой синтаксис:
def csrf_failure(request, reason=""):
...
где reason — краткое сообщение (предназначенное для разработчиков или ведения журнала, а не для конечных пользователей), указывающее причину отклонения запроса. Она должна возвращать HttpResponseForbidden.
django.views.csrf.csrf_failure() принимает дополнительный параметр template_name, который по умолчанию равен '403_csrf.html'. Если шаблон с таким именем существует, он будет использован для отображения страницы.
CSRF_HEADER_NAME
По умолчанию: 'HTTP_X_CSRFTOKEN'
Имя заголовка запроса, используемого для аутентификации CSRF.
Как и другие заголовки HTTP в request.META, имя заголовка, полученное от сервера, нормализуется путем преобразования всех символов в верхний регистр, замены дефисов на подчеркивания и добавления префикса 'HTTP_' к имени. Например, если ваш клиент отправляет заголовок 'X-XSRF-TOKEN', значение параметра должно быть 'HTTP_X_XSRF_TOKEN'.
CSRF_TRUSTED_ORIGINS
По умолчанию: [] (Пустой список)
Список хостов, которые являются доверенными источниками для небезопасных запросов (например, POST). Для небезопасного запроса secure защита Django от подделки межсайтовых запросов требует, чтобы запрос содержал заголовок 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).
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. Этот внутренний параметр настройки DATABASES принимает те же значения, что и общий параметр TIME_ZONE.
Это позволяет взаимодействовать с базами данных сторонних разработчиков, которые хранят даты и время в местном времени, а не в UTC. Чтобы избежать проблем с переходом на летнее/зимнее время, не следует устанавливать этот параметр для баз данных, управляемых Django.
Когда USE_TZ равен True, а база данных не поддерживает часовые пояса (например, SQLite, MySQL, Oracle), Django читает и записывает даты и время в местном времени в соответствии с этим параметром, если он задан, и в UTC, если он не задан.
Когда USE_TZ равен True, а база данных поддерживает часовые пояса (например, PostgreSQL), установка этого параметра приводит к ошибке.
Когда USE_TZ равен False, установка этого параметра приводит к ошибке.
DISABLE_SERVER_SIDE_CURSORS
По умолчанию: False
Установите это значение в True, если вы хотите отключить использование курсоров на стороне сервера с QuerySet.iterator(). Пулы транзакций и курсоры на стороне сервера описывает этот случай использования.
Это параметр, специфичный для PostgreSQL.
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.
TEMPLATE
Это настройка, специфичная для PostgreSQL.
Имя шаблона (например, 'template0'), по которому создается тестовая база данных.
CREATE_DB
По умолчанию: True
Это настройка, специфичная для Oracle.
Если она установлена в False, то тестовые табличные пространства не будут автоматически создаваться в начале тестов или удаляться в конце.
CREATE_USER
По умолчанию: True
Это настройка, специфичная для Oracle.
Если она установлена в False, то тестовый пользователь не будет автоматически создаваться в начале тестов и удаляться в конце.
USER
По умолчанию: None
Это настройка, специфичная для Oracle.
Имя пользователя для подключения к базе данных Oracle, которая будет использоваться при запуске тестов. Если не указано, Django будет использовать 'test_' + USER.
PASSWORD
По умолчанию: None
Это настройка, специфичная для Oracle.
Пароль для подключения к базе данных Oracle, который будет использоваться при запуске тестов. Если не указано, Django сгенерирует случайный пароль.
Более старые версии использовали жёстко заданный пароль по умолчанию. Это также было изменено в 1.10.3, 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.
DATAFILE_SIZE
По умолчанию: '50M'
Это настройка, специфичная для Oracle.
Начальный размер DATAFILE.
DATAFILE_TMP_SIZE
По умолчанию: '50M'
Это настройка, специфичная для Oracle.
Начальный размер DATAFILE_TMP.
DATAFILE_EXTSIZE
По умолчанию: '25M'
Это настройка, специфичная для Oracle.
Размер расширения DATAFILE при необходимости увеличения пространства.
DATAFILE_TMP_EXTSIZE
По умолчанию: '25M'
Это настройка, специфичная для 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 datetime module syntax, а не строковые форматы из фильтра шаблонов 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 datetime module syntax, а не строковые форматы из фильтра шаблонов 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 для функций представления (handler500, или представление отладки, если DEBUG равно True) и регистрация ответов 500 (django.request) пропускаются, и исключения передаются вверх по стеку.
Это может быть полезно для некоторых тестовых установок. Не следует использовать на сайте в реальной работе, если вы не хотите, чтобы ваш веб-сервер (а не 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.
Устарело начиная с версии 2.0: Эта настройка устарела, потому что она плохо взаимодействует с приложениями сторонних разработчиков и устарела, так как HTML5 в основном заменил XHTML.
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_LOCALTIME
По умолчанию: False
Определяет, отправлять ли заголовок SMTP Date электронных сообщений в часовом поясе по умолчанию (True) или в UTC (False).
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 каждого приложения, в порядке поиска.
Обратите внимание, что пути должны использовать косые черты (forward slashes), даже в Windows.
См. Предоставление данных с помощью фикстур и Загрузка фикстур.
FORCE_SCRIPT_NAME
По умолчанию: None
Если не None, это значение будет использоваться как значение переменной окружения SCRIPT_NAME в любом HTTP-запросе. Эта настройка может использоваться для переопределения значения, предоставленного сервером, SCRIPT_NAME, которое может быть переписанной версией предпочтительного значения или вообще не предоставлено. Она также используется методом django.setup() для установки префикса URL-разрешителя вне цикла запроса/ответа (например, в командных файлах управления и автономных скриптах) для генерации корректных URL-адресов, когда SCRIPT_NAME не /.
FORM_RENDERER
По умолчанию: 'django.forms.renderers.DjangoTemplates'
Класс, который отображает виджеты форм. Он должен реализовывать интерфейс низкого уровня для отображения виджетов.
FORMAT_MODULE_PATH
По умолчанию: None
Полный путь к Python-пакету, содержащему пользовательские определения форматов для локалей проекта. Если это не указано, 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_FORMATDATE_INPUT_FORMATS-
DATETIME_FORMAT, DATETIME_INPUT_FORMATSDECIMAL_SEPARATORFIRST_DAY_OF_WEEKMONTH_DAY_FORMATNUMBER_GROUPINGSHORT_DATE_FORMATSHORT_DATETIME_FORMATTHOUSAND_SEPARATORTIME_FORMATTIME_INPUT_FORMATSYEAR_MONTH_FORMAT
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()добавлять некоторые переменные в контекст шаблона. - Позволяют использовать закладки admindocs, даже если вы не вошли в систему как пользователь с правами администратора.
- Отмечаются как «внутренние» (в отличие от «внешних») в электронных письмах
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) и добавить middleware, который копирует значение из старого cookie в новый, а затем удаляет старый.
LANGUAGE_COOKIE_NAME
Имя cookie, используемое для cookie языка. Оно может быть любым (при условии, что оно отличается от других имён cookie в вашем приложении). См. Международная и локальная настройки.
LANGUAGE_COOKIE_PATH
Путь, заданный в cookie языка. Он должен либо совпадать с URL-путем вашей установки Django, либо быть предком этого пути.
Это полезно, если у вас несколько установок Django, работающих под одним именем хоста. Они могут использовать разные пути cookie, и каждая установка будет видеть только свои собственные cookie языка.
Будьте осторожны при обновлении этого параметра на сайте в рабочей среде. Если вы обновите это значение, чтобы использовать более глубокий путь, чем раньше, существующие cookie пользователей со старым путём не будут обновлены. Это приведёт к тому, что пользователи сайта не смогут изменить язык, пока эти cookie не перестанут действовать. Единственный безопасный и надёжный способ выполнить переключение — это постоянно изменить имя cookie языка (через параметр LANGUAGE_COOKIE_NAME) и добавить middleware, который копирует значение из старого cookie в новый, а затем удаляет старый.
LANGUAGES
По умолчанию: список всех доступных языков. Этот список постоянно расширяется, и включение его копии неизбежно быстро устареет. Вы можете посмотреть текущий список переведённых языков, посмотрев в django/conf/global_settings.py (или просмотреть онлайн-источник).
Список представляет собой список пар кортежей в формате (код языка, language name) — например, ('ja', 'Japanese'). Это определяет, какие языки доступны для выбора языка. См. Международная и локальная настройки.
В целом, значения по умолчанию должны быть достаточными. Устанавливайте этот параметр только в том случае, если хотите ограничить выбор языка подмножеством языков, предоставляемых Django.
Если вы определяете пользовательский параметр LANGUAGES, вы можете пометить имена языков как строки перевода, используя функцию gettext_lazy().
Вот пример файла настроек:
from django.utils.translation import gettext_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. По умолчанию указывает на экземпляр метода конфигурации Python dictConfig.
Если вы установите 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.
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 января».
Обратите внимание, что если USE_L10N установлено в значение True, соответствующий формат, определённый локали, имеет более высокий приоритет и будет применён.
См. allowed date format strings. См. также DATE_FORMAT, DATETIME_FORMAT, TIME_FORMAT и YEAR_MONTH_FORMAT.
NUMBER_GROUPING
По умолчанию: 0
Количество цифр, сгруппированных вместе в целой части числа.
Обычно используется для отображения разделителя тысяч. Если это значение 0, то к числу не будет применена группировка. Если это значение больше 0, то THOUSAND_SEPARATOR будет использоваться в качестве разделителя между этими группами.
Некоторые языковые локали используют неравномерную группировку цифр, например, 10,00,00,000 в en_IN. В этом случае вы можете указать последовательность с количеством размеров групп цифр, которые нужно применить. Первое число определяет размер группы, предшествующей десятичному разделителю, а каждое последующее число определяет размер предшествующих групп. Если последовательность заканчивается -1, дальнейшая группировка не выполняется. Если последовательность заканчивается 0, размер последней группы используется для остатка числа.
Пример кортежа для en_IN:
NUMBER_GROUPING = (3, 2, 0)
Обратите внимание, что если USE_L10N установлено в True, то формат, заданный локалью, имеет более высокий приоритет и будет применен вместо него.
См. также DECIMAL_SEPARATOR, THOUSAND_SEPARATOR и USE_THOUSAND_SEPARATOR.
Добавлена поддержка неравномерной группировки цифр.
PREPEND_WWW
По умолчанию: False
Должен ли добавляться префикс «www.» к доменным именам URL, которые его не содержат. Это используется только в том случае, если установлен CommonMiddleware (см. Средства промежуточного слоя). См. также 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 и может привести к эскалации привилегий и уязвимостям удаленного выполнения кода.
Секретный ключ используется для:
- Всех сессий, если используется любой другой backend сессий, чем
django.contrib.sessions.backends.cache, или используется по умолчаниюget_session_auth_hash(). - Всех сообщений, если используется
CookieStorageилиFallbackStorage. - Всех
PasswordResetViewтокенов. - Любого использования криптографического шифрования, если не указан другой ключ.
Если вы меняете свой секретный ключ, все вышеперечисленное будет аннулировано. Секретные ключи не используются для паролей пользователей, и смена ключа не повлияет на них.
Примечание
По умолчанию файл 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_PRELOAD
По умолчанию: False
Если True, то SecurityMiddleware добавляет директиву preload к заголовку HTTP Strict Transport Security. Это не оказывает никакого влияния, если SECURE_HSTS_SECONDS не равно нулю.
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, используя незащищённое соединение между прокси-сервером и 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).
Примечание
Если изменение этой настройки на True приводит к бесконечным перенаправлениям, это, вероятно, означает, что ваш сайт работает за прокси-сервером и не может определить, какие запросы безопасные, а какие нет. Ваш прокси, вероятно, устанавливает заголовок для указания безопасных запросов; вы можете исправить проблему, выяснив, какой это заголовок, и соответствующим образом настроив настройку 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.)
Доступный формат для отображения полей datetime на шаблонах. Обратите внимание, что если USE_L10N установлено в True, соответствующий формат, заданный локалью, имеет более высокий приоритет и будет применён. См. allowed date format strings.
См. также DATE_FORMAT и SHORT_DATE_FORMAT.
SIGNING_BACKEND
По умолчанию: 'django.core.signing.TimestampSigner'
Бэкенд, используемый для подписи файлов cookie и других данных.
См. также документацию по Криптографической подписи.
SILENCED_SYSTEM_CHECKS
По умолчанию: [] (Пустой список)
Список идентификаторов сообщений, созданных системой проверки (т.е. ["models.W001"]), которые вы хотите постоянно игнорировать. Заглушенные проверки не будут выводиться в консоль.
См. также документацию по Системе проверки.
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'
]
Список форматов, которые будут приняты при вводе данных в поле времени. Форматы будут проверены в порядке следования, используя первый допустимый. Обратите внимание, что эти строки формата используют синтаксис модуля Python datetime, а не строки формата из фильтра шаблонов date.
Когда USE_L10N равно True, формат, заданный локалью, имеет более высокий приоритет и будет применен вместо него.
См. также DATE_INPUT_FORMATS и DATETIME_INPUT_FORMATS.
TIME_ZONE
По умолчанию: 'America/Chicago'
Строка, представляющая часовой пояс для этой установки. См. список часовых поясов.
Примечание
С момента первого выпуска Django с TIME_ZONE, установленным на 'America/Chicago', глобальная настройка (используемая, если ничего не определено в вашем проекте settings.py) остается 'America/Chicago' для обратной совместимости. Шаблоны новых проектов по умолчанию устанавливают значение 'UTC'.
Обратите внимание, что это не обязательно часовой пояс сервера. Например, один сервер может обслуживать несколько сайтов на Django, каждый со своими настройками часового пояса.
Когда USE_TZ равно False, это часовой пояс, в котором Django будет хранить все даты и время. Когда USE_TZ равно True, это часовой пояс по умолчанию, который Django будет использовать для отображения дат и времени в шаблонах и для интерпретации дат и времени, вводимых в формах.
В средах Unix (где реализован time.tzset()), Django устанавливает переменную os.environ['TZ'] в значение, которое вы указали в настройке TIME_ZONE. Таким образом, все ваши представления и модели будут автоматически работать в этом часовом поясе. Однако, Django не будет устанавливать переменную среды TZ, если вы используете ручной способ конфигурации, как описано в ручной настройке параметров. Если Django не устанавливает переменную среды TZ, вам нужно будет убедиться, что ваши процессы работают в правильной среде.
Примечание
Django не может надежно использовать альтернативные часовые пояса в среде Windows. Если вы используете Django в Windows, TIME_ZONE должно соответствовать системному часовому поясу.
USE_ETAGS
Булево значение, указывающее, нужно ли выводить заголовок ETag. Это экономит пропускную способность, но снижает производительность. Используется в CommonMiddleware и в рамке кеширования.
Устаревшее начиная с версии 1.11: Эта настройка устарела в пользу использования ConditionalGetMiddleware, которая устанавливает ETag независимо от этой настройки.
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, на который перенаправляются запросы после выхода пользователя из системы с помощью LogoutView (если представление не получает аргумент next_page).
Если None, перенаправления не будет выполнено, и представление выхода будет отображено.
Эта настройка также принимает имена URL-шаблонов, которые можно использовать для сокращения дублирования конфигурации, так как вам не нужно определять URL в двух местах (settings и URLconf).
PASSWORD_RESET_TIMEOUT_DAYS
По умолчанию: 3
Количество дней, в течение которых действителен URL для сброса пароля. Используется механизмом сброса пароля 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',
]
AUTH_PASSWORD_VALIDATORS
По умолчанию: [] (Пустой список)
Список валидаторов, используемых для проверки сложности паролей пользователей. Более подробную информацию см. в Проверка паролей. По умолчанию проверка не выполняется, и все пароли принимаются.
Messages
Настройки для 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'
См. бэкенды хранения сообщений для получения дополнительной информации.
Бэкенды, использующие куки – CookieStorage и FallbackStorage – используют значение SESSION_COOKIE_DOMAIN, SESSION_COOKIE_SECURE и SESSION_COOKIE_HTTPONLY при установке своих куки.
MESSAGE_TAGS
{
messages.DEBUG: 'debug',
messages.INFO: 'info',
messages.SUCCESS: 'success',
messages.WARNING: 'warning',
messages.ERROR: 'error',
}
Это устанавливает отображение уровня сообщения на метку сообщения, которая обычно отображается как класс CSS в HTML. Если вы укажете значение, оно будет расширять значение по умолчанию. Это означает, что вам нужно указать только те значения, которые вам нужно переопределить. См. отображение сообщений выше для получения дополнительной информации.
Важно
Если вы переопределяете MESSAGE_TAGS в файле настроек и полагаетесь на встроенные константы, вы должны импортировать модуль constants напрямую, чтобы избежать потенциальных циклических импортов, например:
from django.contrib.messages import constants as message_constants
MESSAGE_TAGS = {message_constants.INFO: ''}
При необходимости вы можете указать числовые значения констант непосредственно согласно значениям в таблице констант выше.
Sessions
Настройки для django.contrib.sessions.
SESSION_CACHE_ALIAS
По умолчанию: 'default'
Если вы используете хранение сессий на основе кеша, это выбирает используемый кеш.
SESSION_COOKIE_AGE
Срок действия файлов cookie сессии в секундах.
SESSION_COOKIE_DOMAIN
Домен для файлов cookie сессий. Установите это значение на строку, например, "example.com" для файлов cookie между доменами, или используйте None для обычного файла cookie домена.
Будьте осторожны при обновлении этой настройки на сайте в производстве. Если вы обновите эту настройку для включения файлов cookie между доменами на сайте, который ранее использовал стандартные файлы cookie домена, существующие файлы cookie пользователей будут установлены на старый домен. Это может привести к тому, что они не смогут войти в систему, пока эти файлы cookie не истекут.
Это настройка также влияет на куки, установленные django.contrib.messages.
SESSION_COOKIE_HTTPONLY
Использовать флаг HTTPOnly для куки сессии. Если значение установлено в True, клиентский JavaScript не сможет получить доступ к куки сессии.
HTTPOnly — это флаг, включенный в заголовок HTTP-ответа Set-Cookie. Он не является частью стандарта RFC 2109 для куки, и не поддерживается всеми браузерами. Однако, когда он поддерживается, это может быть полезным способом снизить риск доступа клиентского скрипта к защищённым данным куки.
Включение флага делает менее тривиальным для злоумышленника превращение уязвимости XSS в полное завладение сессией пользователя. Нет оправдания для выключения этого флага: если ваш код зависит от чтения куки сессии из JavaScript, вы, вероятно, делаете что-то не так.
SESSION_COOKIE_NAME
Имя куки для сессий. Можно использовать любое имя (только если оно отличается от других имён куки в вашем приложении).
SESSION_COOKIE_PATH
Путь, заданный для куки сессии. Должен соответствовать пути URL вашего Django-приложения или быть родительским каталогом этого пути.
Это полезно, если у вас несколько Django-инстансов, работающих под одним именем хоста. Они могут использовать разные пути куки, и каждый инстанс увидит только свою куки сессии.
SESSION_COOKIE_SECURE
Использовать ли безопасную куки для сессии. Если это True, куки будет помечена как «безопасная», что означает, что браузеры могут гарантировать, что куки отправляется только по HTTPS-соединению.
Поскольку для перехвата сессии пользователя пакета анализатора (например, Firesheep) достаточно тривиального перехвата куки сессии без шифрования, нет никаких оправданий для выключения этого флага. Это предотвратит использование сессий по небезопасным запросам, и это хорошо.
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’s finders, которые по умолчанию — подкаталоги приложения и любые каталоги, которые вы включите в 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").
Префиксы (необязательно)
В случае, если вы хотите ссылаться на файлы в одном из мест с дополнительным именем пространства имён, вы можете необязательно указать префиксы в формате кортежей, например:
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_LOCALTIMEEMAIL_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_IPSMIDDLEWARE- Безопасность
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/2.0/ref/settings/