Spec-Zone.ru › Django 2.0

Настройки

  • Основные настройки
  • Авторизация
  • Сообщения
  • Сессии
  • Сайты
  • Статические файлы
  • Индекс основных настроек

Предупреждение

Будьте осторожны при перезаписи настроек, особенно когда значение по умолчанию — это непустой список или словарь, например, 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, вы обходите эту защиту безопасности.

Изменено в Django 1.11:

В более старых версиях, 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

По умолчанию: 31449600 (приблизительно 1 год, в секундах)

Возраст куки CSRF, в секундах.

Причина установки длительного времени истечения срока действия заключается в том, чтобы избежать проблем в случае закрытия браузера пользователем или добавления страницы в закладки, а затем загрузки этой страницы из кэша браузера. Без постоянных кукис отправка формы в этом случае завершится неудачей.

Некоторые браузеры (в частности, Internet Explorer) могут запретить использование постоянных кукис или могут повредить индексы в файле кукис на диске, что приведет к (иногда прерывистому) отказу проверок CSRF-защиты. Измените это значение на None, чтобы использовать кукис CSRF на основе сеанса, которые хранят кукис в памяти вместо постоянного хранилища.

CSRF_COOKIE_DOMAIN

По умолчанию: None

Домен, который будет использоваться при установке куки CSRF. Это может быть полезно для легкого исключения кросс-доменных запросов из обычной защиты от подделки межсайтовых запросов. Он должен быть установлен на строку, например, "example.com", чтобы разрешить запрос POST из формы на одном поддомене, чтобы его принял вид, предоставленный другим поддоменом.

Обратите внимание, что наличие этого параметра не подразумевает, что защита Django от подделки межсайтовых запросов по умолчанию защищена от межподдоменных атак — см. раздел Ограничения CSRF.

CSRF_COOKIE_HTTPONLY

По умолчанию: False

Использовать HttpOnly флаг на куки CSRF. Если это значение установлено на True, клиентский JavaScript не сможет получить доступ к куки CSRF.

Назначение куки CSRF как HttpOnly не обеспечивает никакой практической защиты, потому что CSRF защищает только от атак между доменными зонами. Если злоумышленник может прочитать куки через JavaScript, он уже находится в той же доменной зоне, что и браузер, так что он может делать все, что ему заблагорассудится. (XSS — гораздо большая брешь, чем CSRF).

Хотя настройка предлагает небольшую практическую пользу, ее иногда требуют аудиторы безопасности.

Если вы включили это и вам нужно отправить значение токена CSRF с запросом AJAX, ваш JavaScript должен извлекать значение из скрытого поля ввода токена CSRF на странице, а не из куки.

См. SESSION_COOKIE_HTTPONLY для получения дополнительной информации о HttpOnly.

CSRF_COOKIE_NAME

По умолчанию: 'csrftoken'

Имя куки для использования маркера аутентификации CSRF. Это может быть любое имя (при условии, что оно отличается от других имен куки в вашем приложении). См. Защита от подделки межсайтовых запросов.

CSRF_COOKIE_PATH

По умолчанию: '/'

Путь, установленный в куки CSRF. Он должен соответствовать пути URL вашей установки Django или быть родительским по отношению к этому пути.

Это полезно, если у вас несколько экземпляров Django, работающих под одним именем хоста. Они могут использовать разные пути куки, и каждый экземпляр будет видеть только свои собственные куки CSRF.

CSRF_COOKIE_SECURE

По умолчанию: False

Использовать защищенную куки для куки CSRF. Если это значение установлено на True, куки будет помечена как «защищенная», что означает, что браузеры могут гарантировать, что куки отправляется только с подключением HTTPS.

CSRF_USE_SESSIONS

Новое в Django 1.11.

По умолчанию: 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

Новое в Django 1.11.1.

По умолчанию: 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
Новое в Django 1.11.

Это настройка, специфичная для PostgreSQL.

Имя шаблона (например, 'template0'), по которому создается тестовая база данных.

CREATE_DB

По умолчанию: True

Это настройка, специфичная для Oracle.

Если она установлена в False, то тестовые табличные пространства не будут автоматически создаваться в начале тестов или удаляться в конце.

CREATE_USER

По умолчанию: True

Это настройка, специфичная для Oracle.

Если она установлена в False, то тестовый пользователь не будет автоматически создаваться в начале тестов и удаляться в конце.

USER

По умолчанию: None

Это настройка, специфичная для Oracle.

Имя пользователя для подключения к базе данных Oracle, которая будет использоваться при запуске тестов. Если не указано, Django будет использовать 'test_' + USER.

PASSWORD

По умолчанию: None

Это настройка, специфичная для Oracle.

Пароль для подключения к базе данных Oracle, который будет использоваться при запуске тестов. Если не указано, Django сгенерирует случайный пароль.

Изменено в Django 1.11:

Более старые версии использовали жёстко заданный пароль по умолчанию. Это также было изменено в 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
Новое в Django 2.0.

По умолчанию: '50M'

Это настройка, специфичная для Oracle.

Начальный размер DATAFILE.

DATAFILE_TMP_SIZE
Новое в Django 2.0.

По умолчанию: '50M'

Это настройка, специфичная для Oracle.

Начальный размер DATAFILE_TMP.

DATAFILE_EXTSIZE
Новое в Django 2.0.

По умолчанию: '25M'

Это настройка, специфичная для Oracle.

Размер расширения DATAFILE при необходимости увеличения пространства.

DATAFILE_TMP_EXTSIZE
Новое в Django 2.0.

По умолчанию: '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

Новое в Django 1.11.

По умолчанию: 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 1.11.

По умолчанию: '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_FORMAT
  • DATE_INPUT_FORMATS
  • DATETIME_FORMAT,
  • DATETIME_INPUT_FORMATS
  • DECIMAL_SEPARATOR
  • FIRST_DAY_OF_WEEK
  • MONTH_DAY_FORMAT
  • NUMBER_GROUPING
  • SHORT_DATE_FORMAT
  • SHORT_DATETIME_FORMAT
  • THOUSAND_SEPARATOR
  • TIME_FORMAT
  • TIME_INPUT_FORMATS
  • YEAR_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

По умолчанию: None (истекает при закрытии браузера)

Срок действия cookie языка в секундах.

LANGUAGE_COOKIE_DOMAIN

По умолчанию: None

Домен, который следует использовать для языка cookie. Установите это значение в строку, например, "example.com", для cookie разных доменов или используйте None, для стандартного cookie домена.

Будьте осторожны при обновлении этого параметра на сайте в рабочей среде. Если вы обновите это значение, чтобы включить cookie разных доменов на сайте, который ранее использовал стандартные cookie домена, существующие cookie пользователя, имеющие старый домен, не будут обновлены. Это приведёт к тому, что пользователи сайта не смогут изменить язык, пока эти cookie не перестанут действовать. Единственный безопасный и надёжный способ выполнить переключение — это постоянно изменить имя cookie языка (через параметр LANGUAGE_COOKIE_NAME) и добавить middleware, который копирует значение из старого cookie в новый, а затем удаляет старый.

LANGUAGE_COOKIE_NAME

По умолчанию: 'django_language'

Имя 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.

Изменено в Django 1.11:

Добавлена поддержка неравномерной группировки цифр.

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

Добавлено в Django 1.11.

По умолчанию: 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.

END_OF_DOCUMENT_MARKER

Обратите внимание, что если 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

По умолчанию: False

Булево значение, указывающее, нужно ли выводить заголовок 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 хранит пароли.

По умолчанию:

[
    '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

По умолчанию: 1209600 (2 недели, в секундах)

Срок действия файлов cookie сессии в секундах.

SESSION_COOKIE_DOMAIN

По умолчанию: None

Домен для файлов cookie сессий. Установите это значение на строку, например, "example.com" для файлов cookie между доменами, или используйте None для обычного файла cookie домена.

Будьте осторожны при обновлении этой настройки на сайте в производстве. Если вы обновите эту настройку для включения файлов cookie между доменами на сайте, который ранее использовал стандартные файлы cookie домена, существующие файлы cookie пользователей будут установлены на старый домен. Это может привести к тому, что они не смогут войти в систему, пока эти файлы cookie не истекут.

Это настройка также влияет на куки, установленные django.contrib.messages.

SESSION_COOKIE_HTTPONLY

По умолчанию: True

Использовать флаг HTTPOnly для куки сессии. Если значение установлено в True, клиентский JavaScript не сможет получить доступ к куки сессии.

HTTPOnly — это флаг, включенный в заголовок HTTP-ответа Set-Cookie. Он не является частью стандарта RFC 2109 для куки, и не поддерживается всеми браузерами. Однако, когда он поддерживается, это может быть полезным способом снизить риск доступа клиентского скрипта к защищённым данным куки.

Включение флага делает менее тривиальным для злоумышленника превращение уязвимости XSS в полное завладение сессией пользователя. Нет оправдания для выключения этого флага: если ваш код зависит от чтения куки сессии из JavaScript, вы, вероятно, делаете что-то не так.

SESSION_COOKIE_NAME

По умолчанию: 'sessionid'

Имя куки для сессий. Можно использовать любое имя (только если оно отличается от других имён куки в вашем приложении).

SESSION_COOKIE_PATH

По умолчанию: '/'

Путь, заданный для куки сессии. Должен соответствовать пути URL вашего Django-приложения или быть родительским каталогом этого пути.

Это полезно, если у вас несколько Django-инстансов, работающих под одним именем хоста. Они могут использовать разные пути куки, и каждый инстанс увидит только свою куки сессии.

SESSION_COOKIE_SECURE

По умолчанию: False

Использовать ли безопасную куки для сессии. Если это 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 вашего сайта.

Поиск статических файлов в настоящее время считается закрытым интерфейсом, и поэтому данный интерфейс не документирован.

Индекс основных настроек

Кэш

  • CACHES
  • CACHE_MIDDLEWARE_ALIAS
  • CACHE_MIDDLEWARE_KEY_PREFIX
  • CACHE_MIDDLEWARE_SECONDS

База данных

  • DATABASES
  • DATABASE_ROUTERS
  • DEFAULT_INDEX_TABLESPACE
  • DEFAULT_TABLESPACE

Отладка

  • DEBUG
  • DEBUG_PROPAGATE_EXCEPTIONS

Электронная почта

  • ADMINS
  • DEFAULT_CHARSET
  • DEFAULT_FROM_EMAIL
  • EMAIL_BACKEND
  • EMAIL_FILE_PATH
  • EMAIL_HOST
  • EMAIL_HOST_PASSWORD
  • EMAIL_HOST_USER
  • EMAIL_PORT
  • EMAIL_SSL_CERTFILE
  • EMAIL_SSL_KEYFILE
  • EMAIL_SUBJECT_PREFIX
  • EMAIL_TIMEOUT
  • EMAIL_USE_LOCALTIME
  • EMAIL_USE_TLS
  • MANAGERS
  • SERVER_EMAIL

Обработка ошибок

  • DEFAULT_EXCEPTION_REPORTER_FILTER
  • IGNORABLE_404_URLS
  • MANAGERS
  • SILENCED_SYSTEM_CHECKS

Настройки загрузки файлов

  • DEFAULT_FILE_STORAGE
  • FILE_CHARSET
  • FILE_UPLOAD_HANDLERS
  • FILE_UPLOAD_MAX_MEMORY_SIZE
  • FILE_UPLOAD_PERMISSIONS
  • FILE_UPLOAD_TEMP_DIR
  • MEDIA_ROOT
  • MEDIA_URL

Формы

  • FORM_RENDERER

Глобализация (i18n/l10n)

  • DATE_FORMAT
  • DATE_INPUT_FORMATS
  • DATETIME_FORMAT
  • DATETIME_INPUT_FORMATS
  • DECIMAL_SEPARATOR
  • FIRST_DAY_OF_WEEK
  • FORMAT_MODULE_PATH
  • LANGUAGE_CODE
  • LANGUAGE_COOKIE_AGE
  • LANGUAGE_COOKIE_DOMAIN
  • LANGUAGE_COOKIE_NAME
  • LANGUAGE_COOKIE_PATH
  • LANGUAGES
  • LOCALE_PATHS
  • MONTH_DAY_FORMAT
  • NUMBER_GROUPING
  • SHORT_DATE_FORMAT
  • SHORT_DATETIME_FORMAT
  • THOUSAND_SEPARATOR
  • TIME_FORMAT
  • TIME_INPUT_FORMATS
  • TIME_ZONE
  • USE_I18N
  • USE_L10N
  • USE_THOUSAND_SEPARATOR
  • USE_TZ
  • YEAR_MONTH_FORMAT

HTTP

  • DATA_UPLOAD_MAX_MEMORY_SIZE
  • DATA_UPLOAD_MAX_NUMBER_FIELDS
  • DEFAULT_CHARSET
  • DEFAULT_CONTENT_TYPE
  • DISALLOWED_USER_AGENTS
  • FORCE_SCRIPT_NAME
  • INTERNAL_IPS
  • MIDDLEWARE
  • Безопасность
    • SECURE_BROWSER_XSS_FILTER
    • SECURE_CONTENT_TYPE_NOSNIFF
    • SECURE_HSTS_INCLUDE_SUBDOMAINS
    • SECURE_HSTS_PRELOAD
    • SECURE_HSTS_SECONDS
    • SECURE_PROXY_SSL_HEADER
    • SECURE_REDIRECT_EXEMPT
    • SECURE_SSL_HOST
    • SECURE_SSL_REDIRECT
  • SIGNING_BACKEND
  • USE_ETAGS
  • USE_X_FORWARDED_HOST
  • USE_X_FORWARDED_PORT
  • WSGI_APPLICATION

Ведение журнала

  • LOGGING
  • LOGGING_CONFIG

Модели

  • ABSOLUTE_URL_OVERRIDES
  • FIXTURE_DIRS
  • INSTALLED_APPS

Безопасность

  • Защита от межсайтовых поддельных запросов
    • CSRF_COOKIE_DOMAIN
    • CSRF_COOKIE_NAME
    • CSRF_COOKIE_PATH
    • CSRF_COOKIE_SECURE
    • CSRF_FAILURE_VIEW
    • CSRF_HEADER_NAME
    • CSRF_TRUSTED_ORIGINS
    • CSRF_USE_SESSIONS
  • SECRET_KEY
  • X_FRAME_OPTIONS

Сериализация

  • DEFAULT_CHARSET
  • SERIALIZATION_MODULES

Шаблоны

  • TEMPLATES

Тестирование

  • База данных: TEST
  • TEST_NON_SERIALIZED_APPS
  • TEST_RUNNER

URL

  • APPEND_SLASH
  • PREPEND_WWW
  • ROOT_URLCONF

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/2.0/ref/settings/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API