Настройки

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

Будьте осторожны при переопределении настроек, особенно если значением по умолчанию является непустой список или словарь, например 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', '[email protected]'), ('Mary', '[email protected]')]

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 3.1:

Если ALLOWED_HOSTSпусто и DEBUG=True, разрешены поддомены localhost.

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.PyMemcacheCache'
  • 'django.core.cache.backends.memcached.PyLibMCCache'

Вы можете использовать бэкэнд кеша, который не поставляется с Django, задав BACKENDполный путь к бэкэнд-классу кеша (т.е. mypackage.backends.whatever.WhateverCache).

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

PyMemcacheCacheБэкенд был добавлен.

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_USE_SESSIONS

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

Следует ли хранить токен CSRF в сеансе пользователя, а не в файле cookie. Это требует использования django.contrib.sessions.

Хранение токена CSRF в файле cookie (по умолчанию Django) безопасно, но хранение его в сеансе является обычной практикой в ​​других веб-фреймворках и поэтому иногда требуется аудиторами безопасности.

Поскольку для представлений ошибок по умолчанию требуется токен CSRF, он SessionMiddlewareдолжен появляться MIDDLEWAREперед любым промежуточным программным обеспечением, которое может вызвать исключение для запуска представления ошибки (например, PermissionDenied), если вы используете CSRF_USE_SESSIONS. См. Заказ промежуточного программного обеспечения .

CSRF_FAILURE_VIEW

По умолчанию: 'django.views.csrf.csrf_failure'

Пунктирный путь к функции просмотра, которая будет использоваться, когда входящий запрос отклоняется защитой CSRF . Функция должна иметь такую ​​подпись:

def csrf_failure(request, reason=""):
    ...

где reason- короткое сообщение (предназначенное для разработчиков или журналов, а не для конечных пользователей) с указанием причины отклонения запроса. Он должен вернуть HttpResponseForbidden.

django.views.csrf.csrf_failure()принимает дополнительный template_name параметр, который по умолчанию равен '403_csrf.html'. Если шаблон с таким именем существует, он будет использоваться для визуализации страницы.

CSRF_HEADER_NAME

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

Имя заголовка запроса, используемого для аутентификации CSRF.

Как и в случае с другими заголовками HTTP request.META, полученное с сервера имя заголовка нормализуется путем преобразования всех символов в верхний регистр, замены дефисов символами подчеркивания и добавления 'HTTP_'префикса к имени. Например, если ваш клиент отправляет 'X-XSRF-TOKEN'заголовок, настройка должна быть 'HTTP_X_XSRF_TOKEN'.

CSRF_TRUSTED_ORIGINS

По умолчанию: [](Пустой список)

Список хостов, которые являются надежными источниками для небезопасных запросов (например POST). Для secureнебезопасного запроса защита CSRF 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',
    }
}

При подключении к другим серверным модулям базы данных, таким как MariaDB, 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_directoryfrom postgresql.conf. Если вы хотите подключиться через сокеты TCP, установите HOSTзначение «localhost» или «127.0.0.1» (в строке «host» pg_hba.conf). В Windows вы всегда должны определять HOST, поскольку сокеты домена UNIX недоступны.

NAME

По умолчанию: ''(Пустая строка)

Имя используемой базы данных. Для SQLite это полный путь к файлу базы данных. При указании пути всегда используйте косую черту, даже в Windows (например C:/homes/user/mysite/sqlite3.db).

CONN_MAX_AGE

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

Время жизни соединения с базой данных в виде целого числа секунд. Используется 0для закрытия соединений с базой данных в конце каждого запроса - историческое поведение Django - и Noneдля неограниченных постоянных соединений.

OPTIONS

По умолчанию: {}(Пустой словарь)

Дополнительные параметры для использования при подключении к базе данных. Доступные параметры зависят от вашей базы данных.

Некоторую информацию о доступных параметрах можно найти в документации Database Backends . Для получения дополнительной информации обратитесь к документации вашего внутреннего модуля.

PASSWORD

По умолчанию: ''(Пустая строка)

Пароль для использования при подключении к базе данных. Не используется с SQLite.

PORT

По умолчанию: ''(Пустая строка)

Порт, используемый при подключении к базе данных. Пустая строка означает порт по умолчанию. Не используется с SQLite.

TIME_ZONE

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

Строка, представляющая часовой пояс для этого подключения к базе данных или None. Этот внутренний параметр DATABASESнастройки принимает те же значения, что и общий TIME_ZONEпараметр.

Когда USE_TZесть Trueи этот параметр установлен, чтение даты и времени из базы данных возвращает известную дату в этом часовом поясе вместо UTC. Когда USE_TZесть False, установка этой опции является ошибкой.

  • Если серверная часть базы данных не поддерживает часовые пояса (например, SQLite, MySQL, Oracle), Django считывает и записывает дату по местному времени в соответствии с этой опцией, если она установлена, и в формате UTC, если это не так.

    Изменение часового пояса соединения изменяет способ чтения и записи даты и времени в базу данных.

    • Если Django управляет базой данных, и у вас нет веских причин поступать иначе, вы должны оставить эту опцию не установленной. Лучше всего хранить дату в формате UTC, потому что это позволяет избежать неоднозначных или несуществующих дат при переходе на летнее время. Кроме того, получение времени в формате UTC упрощает арифметику даты и времени - нет необходимости в normalize()методе, предоставляемом pytz.
    • Если вы подключаетесь к сторонней базе данных, которая хранит дату и время по местному времени, а не по всемирному координированному времени, вы должны установить для этого параметра соответствующий часовой пояс. Точно так же, если Django управляет базой данных, но сторонние системы подключаются к той же базе данных и ожидают найти дату по местному времени, тогда вы должны установить эту опцию.
  • Если серверная часть базы данных поддерживает часовые пояса (например, PostgreSQL), TIME_ZONEопция требуется очень редко. Его можно изменить в любой момент; база данных заботится о преобразовании даты и времени в желаемый часовой пояс.

    Установка часового пояса для подключения к базе данных может быть полезна для выполнения необработанных SQL-запросов, включающих функции даты / времени, предоставляемые базой данных, например date_trunc, потому что их результаты зависят от часового пояса.

    Однако у этого есть и обратная сторона: получение всех значений даты и времени по местному времени усложняет арифметику даты и времени - вы должны вызывать normalize()метод, предоставляемый pytz, после каждой операции.

    Вместо установки этой опции рассмотрите возможность явного преобразования в местное время с помощью необработанных запросов SQL .AT TIME ZONETIME_ZONE

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

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

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, не имеющей зависимостей.

Зависимости порядка создания базы данных. См. Документацию по контролю за порядком создания тестовых баз данных.

MIGRATE
Новое в Django 3.1.

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

Если установлено значение False, миграции не будут выполняться при создании тестовой базы данных. Это похоже на установку Noneзначения в MIGRATION_MODULES, но для всех приложений.

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 сгенерирует случайный пароль.

ORACLE_MANAGED_FILES

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

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

Если установлено значение True, будут использоваться табличные пространства Oracle Managed Files (OMF). DATAFILEи DATAFILE_TMPбудут проигнорированы.

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_TMP_SIZE

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

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

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

DATAFILE_EXTSIZE

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

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

Величина, на которую расширяется ФАЙЛ ДАННЫХ, когда требуется больше места.

DATAFILE_TMP_EXTSIZE

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

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

Величина, на которую расширяется DATAFILE_TMP, когда требуется больше места.

DATA_UPLOAD_MAX_MEMORY_SIZE

По умолчанию: 2621440(т.е. 2,5 МБ).

Максимальный размер тела запроса в байтах до вызова SuspiciousOperation( RequestDataTooBig). Проверка выполняется при доступе к request.bodyили request.POST и рассчитывается по общему размеру запроса без учета каких-либо данных загрузки файлов. Вы можете установить это значение, Noneчтобы отключить проверку. Приложения, которые, как ожидается, будут получать сообщения необычно большой формы, должны настроить этот параметр.

Объем данных запроса коррелирует с объемом памяти, необходимой для обработки запроса и заполнения словарей 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'
]

Список форматов, которые будут приняты при вводе данных в поле даты. Форматы будут проверяться по порядку, используя первый действующий. Обратите внимание, что в этих строках формата используется синтаксис модуля Python datetime , а не строки формата из date фильтра шаблона.

Когда USE_L10Nесть True, формат, продиктованный локалью, имеет более высокий приоритет и будет применяться вместо него.

См. Также DATETIME_INPUT_FORMATSи TIME_INPUT_FORMATS.

DATETIME_FORMAT

По умолчанию: (например )'N j, Y, P'Feb. 4, 2003, 4 p.m.

Форматирование по умолчанию для отображения полей даты и времени в любой части системы. Обратите внимание, что если 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'
    '%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 %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'
]

Список форматов, которые будут приняты при вводе данных в поле даты и времени. Форматы будут проверяться по порядку, используя первый действующий. Обратите внимание, что в этих строках формата используется синтаксис модуля Python datetime , а не строки формата из date фильтра шаблона. Форматы только для даты не включены, поскольку поля datetime будут автоматически пытаться DATE_INPUT_FORMATSв крайнем случае.

Когда USE_L10Nесть True, формат, продиктованный локалью, имеет более высокий приоритет и будет применяться вместо него.

См. Также DATE_INPUT_FORMATSи TIME_INPUT_FORMATS.

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

В более старых версиях по умолчанию используется список, содержащий также форматы только даты.

DEBUG

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

Логическое значение, которое включает / выключает режим отладки.

Никогда не запускайте сайт в производство с 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 startprojectDEBUG = 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_AUTO_FIELD

Новое в Django 3.2.

По умолчанию: 'django.db.models.AutoField'

Тип поля первичного ключа по умолчанию, используемый для моделей, у которых нет поля с primary_key=True.

DEFAULT_CHARSET

По умолчанию: 'utf-8'

Кодировка по умолчанию, используемая для всех HttpResponseобъектов, если тип MIME не указан вручную. Используется при построении Content-Typeзаголовка.

DEFAULT_EXCEPTION_REPORTER

Новое в Django 3.1.

По умолчанию: 'django.views.debug.ExceptionReporter'

Класс репортера исключений по умолчанию, который будет использоваться, если HttpRequestэкземпляр еще не назначен. См. Пользовательские отчеты об ошибках .

DEFAULT_EXCEPTION_REPORTER_FILTER

По умолчанию: 'django.views.debug.SafeExceptionReporterFilter'

Класс фильтра репортера исключений по умолчанию, который будет использоваться, если HttpRequestэкземпляр еще не назначен. См. Фильтрация отчетов об ошибках .

DEFAULT_FILE_STORAGE

По умолчанию: 'django.core.files.storage.FileSystemStorage'

Класс хранилища файлов по умолчанию, который будет использоваться для любых операций, связанных с файлами, которые не указывают конкретную систему хранения. См. Управление файлами .

DEFAULT_FROM_EMAIL

По умолчанию: '[email protected]'

Адрес электронной почты по умолчанию, используемый для различной автоматической корреспонденции от менеджеров сайта. Это не включает сообщения об ошибках, отправленные на ADMINS и MANAGERS; для этого см SERVER_EMAIL.

DEFAULT_HASHING_ALGORITHM

Новое в Django 3.1.

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

Алгоритм хеширования по умолчанию, используемый для кодирования файлов cookie, токенов сброса пароля на сайте администратора, пользовательских сеансов и подписей, созданных django.core.signing.Signerи django.core.signing.dumps(). Алгоритм должен быть 'sha1'или 'sha256'. См. Информацию об использовании в примечаниях к выпуску .

Не рекомендуется, начиная с версии 3.1: Эта переходная настройка устарела. Поддержка его, а также токенов, файлов cookie, сеансов и подписей, использующих алгоритм хеширования SHA-1, будет удалена в Django 4.0.

DEFAULT_INDEX_TABLESPACE

По умолчанию: ''(Пустая строка)

Табличное пространство по умолчанию, используемое для индексов полей, в которых он не указан, если бэкэнд его поддерживает (см. Табличные пространства ).

DEFAULT_TABLESPACE

По умолчанию: ''(Пустая строка)

Табличное пространство по умолчанию для использования в моделях, в которых оно не указано, если бэкэнд его поддерживает (см. Табличные пространства ).

DISALLOWED_USER_AGENTS

По умолчанию: [](Пустой список)

Список скомпилированных объектов регулярных выражений, представляющих строки User-Agent, которым не разрешено посещать какие-либо страницы в масштабе всей системы. Используйте это для ботов / сканеров. Используется только в том случае, если CommonMiddlewareон установлен (см. ПО промежуточного слоя ).

EMAIL_BACKEND

По умолчанию: 'django.core.mail.backends.smtp.EmailBackend'

Бэкэнд для отправки электронных писем. Список доступных серверных программ см. В разделе Отправка электронной почты .

EMAIL_FILE_PATH

По умолчанию: не определено

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

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

Поддержка pathlib.Pathбыла добавлена.

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_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

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

Числовой режим (т.е. 0o644) для установки вновь загружаемых файлов. Дополнительные сведения о том, что означают эти режимы, см. В документации os.chmod().

Если Noneвы получите поведение, зависящее от операционной системы. На большинстве платформ временные файлы будут иметь режим 0o600, а файлы, сохраненные из памяти, будут сохранены с использованием стандартной системной маски umask.

По соображениям безопасности эти разрешения не применяются к временным файлам, которые хранятся в FILE_UPLOAD_TEMP_DIR.

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

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

Всегда ставьте перед режимом префикс 0o .

Если вы не знакомы с режимами файлов, обратите внимание, что 0oпрефикс очень важен: он указывает восьмеричное число, которым должны быть указаны режимы. Если вы попытаетесь использовать 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каталогу каждого приложения в порядке поиска.

Обратите внимание, что эти пути должны использовать косую черту в стиле Unix даже в Windows.

См. Предоставление данных с приборами и Загрузка приспособлений .

FORCE_SCRIPT_NAME

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

В противном случае Noneэто будет использоваться как значение SCRIPT_NAME переменной среды в любом HTTP-запросе. Этот параметр можно использовать для переопределения значения, предоставленного сервером SCRIPT_NAME, которое может быть перезаписанной версией предпочтительного значения или вообще отсутствовать. Он также используется django.setup()для установки префикса сценария преобразователя URL-адресов вне цикла запроса / ответа (например, в командах управления и автономных сценариях) для генерации правильных URL-адресов, когда SCRIPT_NAMEэто не так /.

FORM_RENDERER

По умолчанию: 'django.forms.renderers.DjangoTemplates'

Класс, который отображает виджеты формы. Он должен реализовывать низкоуровневый API рендеринга .

FORMAT_MODULE_PATH

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

Полный путь Python к пакету Python, который содержит определения настраиваемого формата для локалей проекта. В противном случае NoneDjango проверит наличие 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, пока не найдет модуль, который действительно определяет данный формат. Это означает, что форматы, определенные в пакетах, находящихся дальше в списке, будут иметь приоритет над такими же форматами в пакетах, расположенных ниже.

Доступные форматы:

IGNORABLE_404_URLS

По умолчанию: [](Пустой список)

Список скомпилированных объектов регулярных выражений, описывающих URL-адреса, которые следует игнорировать при отправке сообщений об ошибках HTTP 404 по электронной почте (см. Отчет об ошибках ). Сопоставляются регулярные выражения (включая строку запроса, если таковая имеется). Используйте это, если на вашем сайте нет часто запрашиваемого файла, такого как или .request's full pathsfavicon.icorobots.txt

Используется, только если BrokenLinkEmailsMiddlewareон включен (см. ПО промежуточного слоя ).

INSTALLED_APPS

По умолчанию: [](Пустой список)

Список строк, обозначающих все приложения, включенные в этой установке Django. Каждая строка должна представлять собой путь Python с точками к:

  • класс конфигурации приложения (предпочтительно) или
  • пакет, содержащий приложение.

Узнайте больше о конфигурациях приложений .

Используйте реестр приложений для самоанализа

Ваш код никогда не должен иметь INSTALLED_APPSпрямого доступа . Используйте django.apps.appsвместо этого.

Имена приложений и метки должны быть уникальными в INSTALLED_APPS

Приложение names- путь Python к пакету приложения, обозначенный точками, - должен быть уникальным. Невозможно включить одно и то же приложение дважды, за исключением дублирования его кода под другим именем.

Приложение 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 обнаруживает языковые предпочтения .

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')),
]

LANGUAGES_BIDI

По умолчанию: список всех языковых кодов, которые пишутся справа налево. Вы можете увидеть текущий список этих языков, заглянув в django / conf / global_settings.py .

Список содержит коды языков, которые пишутся справа налево.

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

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. См. Также Настройка ведения журнала .

Вы можете увидеть конфигурацию протоколирования по умолчанию, глядя в Джанго / 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см.

Примечание

Если MEDIA_URLэто относительный путь, то перед ним будет стоять префикс, установленный сервером SCRIPT_NAME(или, /если он не установлен). Это упрощает обслуживание приложения Django в подпутье без добавления дополнительных настроек в настройки.

MIDDLEWARE

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

Список используемого промежуточного программного обеспечения. См. Промежуточное ПО .

MIGRATION_MODULES

По умолчанию: {}(Пустой словарь)

Словарь, определяющий пакет, в котором модули миграции могут быть найдены для каждого приложения. Значение этого параметра по умолчанию - пустой словарь, но имя пакета по умолчанию для модулей миграции - migrations.

Пример:

{'blog': 'blog.db_migrations'}

В этом случае миграции, относящиеся к blogприложению, будут содержаться в blog.db_migrationsпакете.

Если вы предоставите app_labelаргумент, makemigrationsавтоматически создаст пакет, если он еще не существует.

Когда вы указываете Noneзначение для приложения, Django будет рассматривать его как приложение без миграций независимо от существующего migrationsподмодуля. Это можно использовать, например, в файле настроек теста, чтобы пропустить миграции во время тестирования (таблицы по-прежнему будут создаваться для моделей приложений). Чтобы отключить миграции для всех приложений во время тестов, вы можете установить , MIGRATEчтобы Falseвместо этого. Если MIGRATION_MODULESиспользуется в общих настройках проекта, не забудьте использовать эту опцию, если вы хотите создавать таблицы для приложения.migrate --run-syncdb

MONTH_DAY_FORMAT

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

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

Например, когда страница списка изменений администратора Django фильтруется с помощью развертки по дате, в заголовке для данного дня отображаются день и месяц. Разные языковые стандарты имеют разные форматы. Например, на американском английском будет написано «1 января», а на испанском - «1 Enero».

Обратите внимание, что если USE_L10Nустановлено значение True, то соответствующий формат, продиктованный локалью, имеет более высокий приоритет и будет применяться.

Смотрите . Смотрите также , , и .allowed date format stringsDATE_FORMATDATETIME_FORMATTIME_FORMATYEAR_MONTH_FORMAT

NUMBER_GROUPING

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

Количество цифр, сгруппированных вместе в целой части числа.

Обычно используется для отображения разделителя тысяч. Если этот параметр установлен 0, то к номеру не применяется группировка. Если этот параметр больше 0, то THOUSAND_SEPARATORбудет использоваться как разделитель между этими группами.

В некоторых регионах используется неравномерная группировка цифр, например 10,00,00,000в en_IN. В этом случае вы можете предоставить последовательность с количеством применяемых размеров групп цифр. Первое число определяет размер группы, предшествующей десятичному разделителю, а каждое последующее число определяет размер предшествующих групп. Если последовательность заканчивается -1, дальнейшая группировка не выполняется. Если последовательность заканчивается символом a 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_str()или force_bytes()преобразовать в желаемый тип.

Django откажется запускаться, если SECRET_KEYон не установлен.

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

Держите это значение в секрете.

Запуск Django с известным SECRET_KEYпоражением многих средств защиты Django может привести к повышению привилегий и уязвимостям удаленного выполнения кода.

Секретный ключ используется для:

Если вы измените свой секретный ключ, все вышеперечисленное станет недействительным. Секретные ключи не используются для паролей пользователей, и ротация ключей не повлияет на них.

Примечание

settings.pyФайл по умолчанию, созданный с помощью, создает уникальный для удобства.django-admin startprojectSECRET_KEY

SECURE_BROWSER_XSS_FILTER

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

Если True, то SecurityMiddlewareустанавливает X-XSS-Protection: 1; mode = заголовок блока для всех ответов, в которых его еще нет.

Современные браузеры больше не поддерживают X-XSS-ProtectionHTTP-заголовок. Хотя этот параметр дает небольшую практическую пользу, вы все равно можете установить заголовок, если вы поддерживаете старые браузеры.

SECURE_CONTENT_TYPE_NOSNIFF

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

Если 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 установлено не-HTTPS-соединение, is_secure()оно всегда будет возвращаться False- даже для запросов, которые были сделаны через HTTPS конечным пользователем. Напротив, если существует HTTPS-соединение между прокси и Django, is_secure()оно всегда будет возвращаться True- даже для запросов, которые изначально были сделаны через HTTP.

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

SECURE_REDIRECT_EXEMPT

По умолчанию: [](Пустой список)

Если путь URL-адреса соответствует регулярному выражению в этом списке, запрос не будет перенаправлен на HTTPS. Эти SecurityMiddlewareполосы ведущих слеши из путей URL, поэтому шаблоны не должны включать их, например . Если есть , этот параметр не действует.SECURE_REDIRECT_EXEMPT = [r'^no-ssl/$', …]SECURE_SSL_REDIRECTFalse

SECURE_REFERRER_POLICY

По умолчанию: 'same-origin'

Если настроено, SecurityMiddlewareзадает для заголовка политики реферера для всех ответов, которые еще не содержат его, указанное значение.

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

В более старых версиях значение по умолчанию - None.

SECURE_SSL_HOST

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

Если строка (например secure.example.com), все перенаправления SSL будут направлены на этот хост, а не на изначально запрошенный хост (например www.example.com). Если SECURE_SSL_REDIRECTесть False, этот параметр не действует.

SECURE_SSL_REDIRECT

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

Если True, перенаправляет все запросы, отличные от HTTPS, на HTTPS (за исключением тех URL-адресов, которые соответствуют регулярному выражению, указанному в ).SecurityMiddleware SECURE_REDIRECT_EXEMPT

Примечание

Если включение этого параметра Trueвызывает бесконечные перенаправления, это, вероятно, означает, что ваш сайт работает через прокси-сервер и не может определить, какие запросы являются безопасными, а какие нет. Ваш прокси-сервер, вероятно, устанавливает заголовок для обозначения защищенных запросов; вы можете исправить проблему, узнав, что это за заголовок, и соответствующим образом настроив SECURE_PROXY_SSL_HEADERпараметр.

SERIALIZATION_MODULES

По умолчанию: не определено

Словарь модулей, содержащий определения сериализатора (представленные в виде строк), с ключом из строкового идентификатора для этого типа сериализации. Например, чтобы определить сериализатор YAML, используйте:

SERIALIZATION_MODULES = {'yaml': 'path.to.yaml_serializer'}

SERVER_EMAIL

По умолчанию: '[email protected]'

Адрес электронной почты, с которого приходят сообщения об ошибках, например, отправленные на ADMINSи MANAGERS.

Почему мои электронные письма отправляются с другого адреса?

Этот адрес используется только для сообщений об ошибках. Это не тот адрес, с которого send_mail() приходят обычные электронные сообщения ; для этого см DEFAULT_FROM_EMAIL.

SHORT_DATE_FORMAT

По умолчанию: 'm/d/Y'(например 12/31/2003)

Доступное форматирование, которое можно использовать для отображения полей даты в шаблонах. Обратите внимание, что если USE_L10Nустановлено значение True, то соответствующий формат, продиктованный локалью, имеет более высокий приоритет и будет применяться. Смотрите .allowed date format strings

См. Также DATE_FORMATи SHORT_DATETIME_FORMAT.

SHORT_DATETIME_FORMAT

По умолчанию: (например )'m/d/Y P'12/31/2003 4 p.m.

Доступное форматирование, которое можно использовать для отображения полей даты и времени в шаблонах. Обратите внимание, что если USE_L10Nустановлено значение True, то соответствующий формат, продиктованный локалью, имеет более высокий приоритет и будет применяться. Смотрите .allowed date format strings

См. Также DATE_FORMATи SHORT_DATE_FORMAT.

SIGNING_BACKEND

По умолчанию: 'django.core.signing.TimestampSigner'

Серверная часть, используемая для подписи файлов 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Файл по умолчанию, созданный sets .django-admin startproject'APP_DIRS': True

OPTIONS

По умолчанию: {}(Пустой диктант)

Дополнительные параметры для передачи в бэкэнд шаблона. Доступные параметры различаются в зависимости от серверной части шаблона. См. DjangoTemplatesИ Jinja2параметры встроенных серверных модулей.

TEST_RUNNER

По умолчанию: 'django.test.runner.DiscoverRunner'

Имя класса, используемого для запуска набора тестов. См. Раздел Использование различных сред тестирования .

TEST_NON_SERIALIZED_APPS

По умолчанию: [](Пустой список)

Чтобы восстановить состояние базы данных между тестами для TransactionTestCases и серверной частью базы данных без транзакций, 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_I18N

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

Логическое значение, указывающее, должна ли быть включена система перевода Django. Это дает возможность отключить его для повышения производительности. Если установлено значение False, Django произведет некоторую оптимизацию, чтобы не загружать механизм перевода.

См. Также LANGUAGE_CODE, USE_L10Nи USE_TZ.

Примечание

settings.pyФайл по умолчанию, созданный для удобства, включает .django-admin startprojectUSE_I18N = True

USE_L10N

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

Логическое значение, указывающее, будет ли локализованное форматирование данных включено по умолчанию или нет. Если это установлено True, например, Django будет отображать числа и даты в формате текущей локали.

См. Также LANGUAGE_CODE, USE_I18Nи USE_TZ.

Примечание

settings.pyФайл по умолчанию, созданный для удобства, включает .django-admin startprojectUSE_L10N = True

USE_THOUSAND_SEPARATOR

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

Логическое значение, указывающее, следует ли отображать числа с использованием разделителя тысяч. Если установлено значение Trueи USE_L10Nтакже True, Django будет формат чисел , используя NUMBER_GROUPINGи THOUSAND_SEPARATORнастройки. Эти настройки также могут быть продиктованы языковым стандартом, который имеет приоритет.

См. Также DECIMAL_SEPARATOR, NUMBER_GROUPINGи THOUSAND_SEPARATOR.

USE_TZ

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

Логическое значение, указывающее, будут ли даты по умолчанию учитывать часовой пояс по умолчанию или нет. Если установлено значение True, Django будет внутренне использовать дату и время с учетом часового пояса.

Если USE_TZзадано значение False, Django будет использовать наивное время по местному времени, за исключением синтаксического анализа строк в формате ISO 8601, где информация о часовом поясе всегда будет сохраняться, если таковая имеется.

См. Также TIME_ZONE, USE_I18Nи USE_L10N.

Примечание

settings.pyФайл по умолчанию, созданный для удобства, включает .django-admin startprojectUSE_TZ = True

USE_X_FORWARDED_HOST

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

Логическое значение, указывающее, следует ли использовать X-Forwarded-Hostзаголовок вместо Hostзаголовка. Это должно быть включено только в том случае, если используется прокси, который устанавливает этот заголовок.

Этот параметр имеет приоритет перед USE_X_FORWARDED_PORT. За RFC 7239 # section-5.3 ,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

Полный путь Python к объекту приложения WSGI, который runserverбудут использовать встроенные серверы Django (например ). Команда управления создаст стандартный файл с вызываемым объектом и укажет этот параметр на это .django-admin startprojectwsgi.pyapplicationapplication

Если не установлен, django.core.wsgi.get_wsgi_application() будет использоваться возвращаемое значение . В этом случае поведение runserverбудет идентично предыдущим версиям Django.

YEAR_MONTH_FORMAT

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

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

Например, когда страница списка изменений администратора Django фильтруется с помощью развертки по дате, в заголовке для данного месяца отображаются месяц и год. Разные языковые стандарты имеют разные форматы. Например, на американском английском будет написано «январь 2006», а в другом языке - «2006 / январь».

Обратите внимание, что если USE_L10Nустановлено значение True, то соответствующий формат, продиктованный локалью, имеет более высокий приоритет и будет применяться.

Смотрите . Смотрите также , , и .allowed date format stringsDATE_FORMATDATETIME_FORMATTIME_FORMATMONTH_DAY_FORMAT

X_FRAME_OPTIONS

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

Значение по умолчанию для заголовка 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-адрес или именованный шаблон URL-адреса, на который запросы перенаправляются после входа в систему, если LoginView не получает nextпараметр GET.

LOGIN_URL

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

URL-адрес или именованный шаблон URL-адреса, в котором запросы перенаправляются для входа в систему при использовании login_required()декоратора LoginRequiredMixin, или AccessMixin.

LOGOUT_REDIRECT_URL

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

URL-адрес или именованный шаблон URL-адреса, на который запросы перенаправляются после выхода из системы, если LogoutView не имеет next_pageатрибута.

Если None, перенаправление не будет выполнено, и будет отображено представление выхода из системы.

PASSWORD_RESET_TIMEOUT

Новое в Django 3.1.

По умолчанию: 259200(3 дня в секундах)

Количество секунд, в течение которых действует ссылка для сброса пароля.

Используется PasswordResetConfirmView.

Примечание

Уменьшение значения этого тайм-аута никак не влияет на способность злоумышленника подобрать токен сброса пароля. Токены предназначены для защиты от перебора без тайм-аута.

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

PASSWORD_RESET_TIMEOUT_DAYS

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

Количество дней, в течение которых действует ссылка для сброса пароля.

Используется PasswordResetConfirmView.

Не рекомендуется, начиная с версии 3.1: Этот параметр устарел. Используйте PASSWORD_RESET_TIMEOUTвместо этого.

PASSWORD_HASHERS

Посмотрите, как Django хранит пароли .

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

[
    'django.contrib.auth.hashers.PBKDF2PasswordHasher',
    'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
    'django.contrib.auth.hashers.Argon2PasswordHasher',
    'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
]

AUTH_PASSWORD_VALIDATORS

По умолчанию: [](Пустой список)

Список валидаторов, которые используются для проверки надежности паролей пользователей. Подробнее см. Проверка пароля . По умолчанию проверка не выполняется и принимаются все пароли.

Сообщения

Настройки для django.contrib.messages.

MESSAGE_LEVEL

По умолчанию: messages.INFO

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

Важный

Если вы переопределяете MESSAGE_LEVELв своем файле настроек и полагаетесь на любую из встроенных констант, вы должны импортировать модуль констант напрямую, чтобы избежать возможности циклического импорта, например:

from django.contrib.messages import constants as message_constants
MESSAGE_LEVEL = message_constants.DEBUG

При желании вы можете указать числовые значения для констант непосредственно в соответствии со значениями в приведенной выше таблице констант .

MESSAGE_STORAGE

По умолчанию: 'django.contrib.messages.storage.fallback.FallbackStorage'

Контролирует, где Django хранит данные сообщений. Допустимые значения:

  • 'django.contrib.messages.storage.fallback.FallbackStorage'
  • 'django.contrib.messages.storage.session.SessionStorage'
  • 'django.contrib.messages.storage.cookie.CookieStorage'

См. Дополнительные сведения в серверных модулях хранения сообщений .

В движках , которые используют куки - 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: ''}

При желании вы можете указать числовые значения для констант непосредственно в соответствии со значениями в приведенной выше таблице констант .

Сессии

Настройки для django.contrib.sessions.

SESSION_CACHE_ALIAS

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

Если вы используете хранилище сеансов на основе кеша , это выбирает кеш для использования.

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 contrib включено (как в шаблоне проекта по умолчанию), команда collectstaticуправления будет собирать статические файлы в этот каталог. См. Инструкции по управлению статическими файлами для получения дополнительных сведений об их использовании.

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

Это должен быть изначально пустой целевой каталог для сбора ваших статических файлов из их постоянных мест в один каталог для простоты развертывания; это не место для постоянного хранения ваших статических файлов. Вы должны сделать это в каталогах , которые будут найдены на staticfilesfinders, который по умолчанию, являются 'static/'приложения подкаталоги и любые каталоги , которые вы включить в STATICFILES_DIRS).

STATIC_URL

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

URL-адрес для использования при обращении к статическим файлам, расположенным в STATIC_ROOT.

Пример: "/static/"или"http://static.example.com/"

В противном случае Noneон будет использоваться в качестве базового пути для определений активов ( Mediaкласса) и приложения staticfiles .

Если задано непустое значение, он должен заканчиваться косой чертой.

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

Примечание

Если STATIC_URLэто относительный путь, то перед ним будет стоять префикс, установленный сервером SCRIPT_NAME(или, /если он не установлен). Это упрощает обслуживание приложения Django в подпутье без добавления дополнительных настроек в настройки.

STATICFILES_DIRS

По умолчанию: [](Пустой список)

Этот параметр определяет дополнительные места приложения staticfiles будет проходить , если FileSystemFinderискатель включена, например , если вы используете collectstaticили findstaticкоманду управления или использовать файл статического служите виду.

Это должно быть установлено на список строк, которые содержат полные пути к вашим дополнительным каталогам файлов, например:

STATICFILES_DIRS = [
    "/home/special.polls.com/polls/static",
    "/home/polls.com/polls/static",
    "/opt/webfiles/common",
]

Обратите внимание, что эти пути должны использовать косую черту в стиле Unix, даже в Windows (например "C:/Users/user/mysite/extra_static_content").

Префиксы (необязательно)

Если вы хотите сослаться на файлы в одном из мест с дополнительным пространством имен, вы можете дополнительно указать префикс в виде кортежей, например:(prefix, path)

STATICFILES_DIRS = [
    # ...
    ("downloads", "/opt/webfiles/stats"),
]

Например, если вы STATIC_URLустановили '/static/', команда collectstaticуправления будет собирать файлы «статистики» в '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поиска убедитесь, что ваши приложения можно найти по статическим файлам, добавив приложение в INSTALLED_APPSнастройки вашего сайта.

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

Тематический указатель основных настроек

Формы

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

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

Шаблоны

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

Copyright ©2021 All rights reserved