设置

警告

覆盖设置时请小心,尤其是在默认值是非空列表或字典时,例如 STATICFILES_FINDERS。确保保留您希望使用的 Django 功能所需的组件。

核心设置

以下是 Django 核心提供的设置及其默认值的列表。贡献应用程序提供的设置列在下面,之后是核心设置的主题索引。有关入门资料,请参阅 设置主题指南

ABSOLUTE_URL_OVERRIDES

默认值:{} (空字典)

一个字典,将 "app_label.model_name" 字符串映射到接受模型对象并返回其 URL 的函数。这是一种在每个安装的基础上插入或覆盖 get_absolute_url() 方法的方式。示例

ABSOLUTE_URL_OVERRIDES = {
    "blogs.blog": lambda o: "/blogs/%s/" % o.slug,
    "news.story": lambda o: "/stories/%s/%s/" % (o.pub_year, o.slug),
}

此设置中使用的模型名称应全部小写,无论实际模型类名称的大小写如何。

ADMINS

默认值:[] (空列表)

接收代码错误通知的所有人员的列表。当 DEBUG=FalseAdminEmailHandlerLOGGING 中配置(默认情况下已完成)时,Django 会向这些人发送在请求/响应周期中引发的异常的详细信息。

列表中的每个项目都应该是 (全名,电子邮件地址) 的元组。示例

[("John", "john@example.com"), ("Mary", "mary@example.com")]

ALLOWED_HOSTS

默认值:[] (空列表)

一个字符串列表,表示此 Django 站点可以服务的宿主/域名。这是一种安全措施,可以防止 HTTP 主机头攻击,即使在许多看似安全的 Web 服务器配置下,这种攻击也是可能的。

此列表中的值可以是完全限定名称(例如 'www.example.com'),在这种情况下,它们将与请求的 Host 头完全匹配(不区分大小写,不包括端口)。以句点开头的值可以用作子域通配符:'.example.com' 将匹配 example.comwww.example.comexample.com 的任何其他子域。'*' 值将匹配任何内容;在这种情况下,您负责自行验证 Host 头(可能在中间件中;如果是这样,此中间件必须在 MIDDLEWARE 中首先列出)。

Django 还允许使用任何条目的 完全限定域名 (FQDN)。一些浏览器在 Host 头中包含尾随点,Django 在执行主机验证时会将其去除。

如果 Host 头(或如果启用了 USE_X_FORWARDED_HOST,则为 X-Forwarded-Host)与此列表中的任何值都不匹配,则 django.http.HttpRequest.get_host() 方法将引发 SuspiciousOperation

DEBUGTrueALLOWED_HOSTS 为空时,主机将针对 ['.localhost', '127.0.0.1', '[::1]'] 进行验证。

ALLOWED_HOSTS在运行测试时进行检查

此验证仅通过 get_host() 应用;如果您的代码直接从 request.META 访问 Host 头,则您正在绕过此安全保护。

APPEND_SLASH

默认值:True

设置为 True 时,如果请求 URL 与 URLconf 中的任何模式都不匹配且结尾没有斜杠,则会发出 HTTP 重定向以附加斜杠的相同 URL。请注意,重定向可能会导致 POST 请求中提交的任何数据丢失。

仅当安装了 CommonMiddleware 时(请参阅 中间件),才会使用 APPEND_SLASH 设置。另请参阅 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.core.cache.backends.redis.RedisCache'

您可以通过将 BACKEND 设置为缓存后端类的完全限定路径(即 mypackage.backends.whatever.WhateverCache)来使用不随 Django 一起提供的缓存后端。

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,缓存条目将永不过期。值为0会导致键立即过期(有效地“不缓存”)。

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 的默认设置)是安全的,但在其他 Web 框架中,将其存储在会话中是很常见的做法,因此有时会被安全审计员要求。

由于默认错误视图需要 CSRF 令牌,因此如果使用CSRF_USE_SESSIONS,则SessionMiddleware必须出现在MIDDLEWARE中,在任何可能引发异常以触发错误视图(例如PermissionDenied)的中间件之前。参见中间件排序

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 身份验证的请求标头名称。

request.META 中的其他 HTTP 标头一样,从服务器接收到的标头名称会通过将所有字符转换为大写、将所有连字符替换为下划线以及在名称前添加 'HTTP_' 前缀来标准化。例如,如果您的客户端发送 'X-XSRF-TOKEN' 标头,则设置应为 'HTTP_X_XSRF_TOKEN'

CSRF_TRUSTED_ORIGINS

默认值:[] (空列表)

非安全请求(例如 POST)的可信来源列表。

对于包含 Origin 标头的请求,Django 的 CSRF 保护要求该标头与 Host 标头中存在的来源匹配。

对于不包含 Origin 标头的secure 非安全请求,该请求必须具有与 Host 标头中存在的来源匹配的 Referer 标头。

这些检查可以防止例如来自 subdomain.example.comPOST 请求成功针对 api.example.com。如果您需要跨源非安全请求,继续上面的示例,请将 'https://subdomain.example.com' 添加到此列表(以及/或者 http://...,如果请求源自不安全的页面)。

此设置还支持子域,因此您可以添加 'https://*.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

如果您想禁用 Django 的事务管理 并实现您自己的事务管理,请将其设置为 False

ENGINE

默认值:'' (空字符串)

要使用的数据库后端。内置数据库后端有:

  • 'django.db.backends.postgresql'

  • 'django.db.backends.mysql'

  • 'django.db.backends.sqlite3'

  • 'django.db.backends.oracle'

您可以通过将 ENGINE 设置为完全限定的路径(即 mypackage.backends.whatever)来使用不随 Django 一起提供的数据库后端。

HOST

默认值:'' (空字符串)

连接到数据库时要使用的主机。空字符串表示本地主机。SQLite 不使用此项。

如果此值以正斜杠开头 ('/') 并且您使用的是 MySQL,则 MySQL 将通过 Unix 套接字连接到指定的套接字。例如:

"HOST": "/var/run/mysql"

如果您使用的是 MySQL 并且此值以正斜杠开头,则此值被认为是主机。

如果您使用的是 PostgreSQL,默认情况下(空的 HOST),数据库连接是通过 UNIX 域套接字完成的(pg_hba.conf 中的“local”行)。如果您的 UNIX 域套接字不在标准位置,请使用 postgresql.conf 中相同的 unix_socket_directory 值。如果您想通过 TCP 套接字连接,请将 HOST 设置为 'localhost' 或 '127.0.0.1'(pg_hba.conf 中的“host”行)。在 Windows 上,您应始终定义 HOST,因为 UNIX 域套接字不可用。

NAME

默认值:'' (空字符串)

要使用的数据库的名称。对于 SQLite,它是数据库文件的完整路径。指定路径时,即使在 Windows 上也始终使用正斜杠(例如 C:/homes/user/mysite/sqlite3.db)。

CONN_MAX_AGE

默认值:0

数据库连接的寿命,以秒为整数。使用 0 在每个请求结束时关闭数据库连接——Django 的历史行为——以及 None 用于无限的持久性数据库连接

CONN_HEALTH_CHECKS

默认值:False

如果设置为 True,则在每个执行数据库访问的请求中重用现有持久性数据库连接之前,将对其进行运行状况检查。如果运行状况检查失败,则在连接不再可用但数据库服务器已准备好接受和提供新连接时(例如,在数据库服务器重新启动关闭现有连接后),将重新建立连接,而不会使请求失败。

OPTIONS

默认值:{} (空字典)

连接到数据库时要使用的额外参数。可用的参数取决于您的数据库后端。

可以在数据库后端文档中找到有关可用参数的一些信息。有关更多信息,请参阅您后端模块自己的文档。

PASSWORD

默认值:'' (空字符串)

连接到数据库时要使用的密码。SQLite 不使用此项。

PORT

默认值:'' (空字符串)

连接到数据库时要使用的端口。空字符串表示默认端口。SQLite 不使用此项。

TIME_ZONE

默认值:None

表示此数据库连接时区的字符串或 NoneDATABASES 设置的此内部选项接受与通用 TIME_ZONE 设置相同的值。

USE_TZTrue 时,从数据库读取日期时间将返回带有时区设置为此选项值的已知日期时间(如果非 None),否则设置为 UTC。

USE_TZFalse 时,设置此选项会出错。

  • 如果数据库后端不支持时区(例如 SQLite、MySQL、Oracle),则 Django 会根据此选项(如果已设置)以本地时间读取和写入日期时间,如果没有设置则以 UTC 读取和写入日期时间。

    更改连接时区会更改从数据库读取和写入日期时间的方式。

    • 如果 Django 管理数据库,并且您没有充分的理由这样做,则应保持此选项未设置。最好以 UTC 存储日期时间,因为它可以避免在夏令时转换期间出现模棱两可或不存在的日期时间。此外,以 UTC 接收日期时间可以使日期时间运算简单——无需考虑 DST 转换期间潜在的偏移更改。

    • 如果您连接到以本地时间而非 UTC 存储日期时间的第三方数据库,则必须将此选项设置为适当的时区。同样,如果 Django 管理数据库,但第三方系统连接到相同的数据库并期望以本地时间找到日期时间,则必须设置此选项。

  • 如果数据库后端支持时区(例如 PostgreSQL),则数据库连接的时区将设置为此值。

    尽管设置TIME_ZONE选项很少需要,但在某些情况下是必要的。特别是,在处理涉及日期/时间函数(如PostgreSQL的date_trunc()generate_series())的原始查询时,尤其是在生成跨越夏令时转换的基于时间的序列时,建议与一般的TIME_ZONE设置相匹配。

    此值可以随时更改,数据库将处理日期时间到已配置时区的转换。

    但是,这有一个缺点:以本地时间接收所有日期时间会使日期时间运算更加棘手——您必须考虑夏令时转换期间可能的偏移变化。

    考虑在原始SQL查询中使用AT TIME ZONE显式转换为本地时间,而不是设置TIME_ZONE选项。

DISABLE_SERVER_SIDE_CURSORS

默认值:False

如果您想禁用与QuerySet.iterator()一起使用服务器端游标,请将其设置为True事务池和服务器端游标描述了用例。

这是一个PostgreSQL特定的设置。

USER

默认值:'' (空字符串)

连接到数据库时使用的用户名。SQLite中不使用。

TEST

默认值:{} (空字典)

测试数据库设置的字典;有关测试数据库的创建和使用的更多详细信息,请参见测试数据库

这是一个带有测试数据库配置的示例

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql",
        "USER": "mydatabaseuser",
        "NAME": "mydatabase",
        "TEST": {
            "NAME": "mytestdatabase",
        },
    },
}

TEST字典中可以使用以下键

CHARSET

默认值:None

用于创建测试数据库的字符集编码。此字符串的值直接传递到数据库,因此其格式是特定于后端的。

PostgreSQLpostgresql)和MySQLmysql)后端支持。

COLLATION

默认值:None

创建测试数据库时使用的排序顺序。此值直接传递到后端,因此其格式是特定于后端的。

仅支持mysql后端(有关详细信息,请参见MySQL 手册)。

DEPENDENCIES

默认值:['default'],对于default以外的所有数据库,它没有依赖项。

数据库的创建顺序依赖关系。有关详细信息,请参阅有关控制测试数据库的创建顺序的文档。

MIGRATE

默认值:True

当设置为False时,创建测试数据库时不会运行迁移。这类似于在MIGRATION_MODULES中将None作为值设置,但适用于所有应用程序。

MIRROR

默认值:None

此数据库在测试期间应镜像的数据库的别名。它依赖于事务,因此必须在TransactionTestCase中而不是TestCase中使用。

此设置允许测试多个数据库的主/从(某些数据库称为主/从)配置。有关详细信息,请参阅有关测试主/从配置的文档。

NAME

默认值:None

运行测试套件时要使用的数据库名称。

如果使用SQLite数据库引擎使用默认值(None),则测试将使用内存驻留数据库。对于所有其他数据库引擎,测试数据库将使用名称'test_' + DATABASE_NAME

参见测试数据库

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)表空间。DATAFILEDATAFILE_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的初始大小。

DATAFILE_TMP_SIZE

默认值:'50M'

这是一个Oracle特定的设置。

DATAFILE_TMP 的初始大小。

DATAFILE_EXTSIZE

默认值:'25M'

这是一个Oracle特定的设置。

当需要更多空间时,DATAFILE 将扩展的量。

DATAFILE_TMP_EXTSIZE

默认值:'25M'

这是一个Oracle特定的设置。

当需要更多空间时,DATAFILE_TMP 将扩展的量。

DATA_UPLOAD_MAX_MEMORY_SIZE

默认值:2621440(即 2.5 MB)。

请求正文在引发 SuspiciousOperationRequestDataTooBig)之前的最大大小(以字节为单位)。此检查在访问 request.bodyrequest.POST 时进行,并根据总请求大小计算,不包括任何文件上传数据。您可以将其设置为 None 以禁用此检查。预期接收异常大的表单提交的应用程序应调整此设置。

请求数据量与处理请求和填充 GET 和 POST 字典所需的内存量相关。如果未经检查,大型请求可能被用作拒绝服务攻击媒介。由于 Web 服务器通常不执行深入的请求检查,因此无法在该级别执行类似的检查。

另请参见 FILE_UPLOAD_MAX_MEMORY_SIZE

DATA_UPLOAD_MAX_NUMBER_FIELDS

默认值:1000

通过 GET 或 POST 接收的参数的最大数量,超过此数量将引发 SuspiciousOperationTooManyFields)。您可以将其设置为 None 以禁用此检查。预期接收异常大量表单字段的应用程序应调整此设置。

请求参数的数量与处理请求和填充 GET 和 POST 字典所需的时间量相关。如果未经检查,大型请求可能被用作拒绝服务攻击媒介。由于 Web 服务器通常不执行深入的请求检查,因此无法在该级别执行类似的检查。

DATA_UPLOAD_MAX_NUMBER_FILES

默认值:100

multipart/form-data 编码请求中,通过 POST 接收的文件的最大数量,超过此数量将引发 SuspiciousOperationTooManyFiles)。您可以将其设置为 None 以禁用此检查。预期接收异常大量文件字段的应用程序应调整此设置。

已接受文件的数量与处理请求所需的时间和内存量相关。如果未经检查,大型请求可能被用作拒绝服务攻击媒介。由于 Web 服务器通常不执行深入的请求检查,因此无法在该级别执行类似的检查。

DATABASE_ROUTERS

默认值:[] (空列表)

将用于确定执行数据库查询时使用哪个数据库的路由器列表。

请参阅有关 多数据库配置中的自动数据库路由 的文档。

DATE_FORMAT

默认值:'N j, Y'(例如 Feb. 4, 2003

用于在系统的任何部分显示日期字段的默认格式。请注意,由区域设置决定的格式具有更高的优先级,并将被应用。请参阅 允许的日期格式字符串

另请参见 DATETIME_FORMATTIME_FORMATSHORT_DATE_FORMAT

DATE_INPUT_FORMATS

默认值

[
    "%Y-%m-%d",  # '2006-10-25'
    "%m/%d/%Y",  # '10/25/2006'
    "%m/%d/%y",  # '10/25/06'
    "%b %d %Y",  # 'Oct 25 2006'
    "%b %d, %Y",  # 'Oct 25, 2006'
    "%d %b %Y",  # '25 Oct 2006'
    "%d %b, %Y",  # '25 Oct, 2006'
    "%B %d %Y",  # 'October 25 2006'
    "%B %d, %Y",  # 'October 25, 2006'
    "%d %B %Y",  # '25 October 2006'
    "%d %B, %Y",  # '25 October, 2006'
]

在输入日期字段数据时将接受的格式列表。将按顺序尝试格式,使用第一个有效的格式。请注意,这些格式字符串使用 Python 的 datetime 模块语法,而不是 date 模板过滤器中的格式字符串。

由区域设置决定的格式具有更高的优先级,并将被应用。

另请参见 DATETIME_INPUT_FORMATSTIME_INPUT_FORMATS

DATETIME_FORMAT

默认值:'N j, Y, P'(例如 Feb. 4, 2003, 4 p.m.

用于在系统的任何部分显示日期时间字段的默认格式。请注意,由区域设置决定的格式具有更高的优先级,并将被应用。请参阅 允许的日期格式字符串

另请参见 DATE_FORMATTIME_FORMATSHORT_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 模板过滤器中的格式字符串。仅日期格式不包含在内,因为日期时间字段将自动尝试 DATE_INPUT_FORMATS 作为最后手段。

由区域设置决定的格式具有更高的优先级,并将被应用。

另请参见 DATE_INPUT_FORMATSTIME_INPUT_FORMATS

DEBUG

默认值:False

一个布尔值,用于启用/禁用调试模式。

切勿在生产环境中部署启用了 DEBUG 的站点。

调试模式的主要功能之一是显示详细的错误页面。如果您的应用程序在 DEBUGTrue 时引发异常,Django 将显示详细的回溯信息,包括有关您的环境的大量元数据,例如所有当前定义的 Django 设置(来自 settings.py)。

作为一项安全措施,Django 不会包含可能敏感的设置,例如 SECRET_KEY。具体来说,它将排除任何名称包含以下任何内容的设置:

  • “API”

  • “KEY”

  • “PASS”

  • “SECRET”

  • “SIGNATURE”

  • “TOKEN”

请注意,这些是部分匹配。“PASS”也将匹配PASSWORD,就像“TOKEN”也将匹配TOKENIZED等等。

但是,请注意,调试输出中总会有不适合公开的内容。文件路径、配置选项等都会为攻击者提供有关您的服务器的额外信息。

同样重要的是要记住,当运行 DEBUG 打开时,Django 将记住它执行的每个 SQL 查询。这在调试时非常有用,但在生产服务器上会迅速消耗内存。

最后,如果 DEBUGFalse,你还需要正确设置 ALLOWED_HOSTS 设置。否则,所有请求都将返回“错误请求 (400)”。

注意

django-admin startproject 创建的默认 settings.py 文件为方便起见将 DEBUG = True

DEBUG_PROPAGATE_EXCEPTIONS

默认值:False

如果设置为 True,则将跳过 Django 对视图函数的异常处理(handler500,或者如果 DEBUGTrue 则为调试视图)以及 500 响应的日志记录(django.request),异常将向上传播。

这对于某些测试设置很有用。除非您希望 Web 服务器(而不是 Django)生成“内部服务器错误”响应,否则不应在实时站点上使用它。在这种情况下,请确保您的服务器不会在响应中显示堆栈跟踪或其他敏感信息。

DECIMAL_SEPARATOR

默认值:'.'(点)

格式化十进制数时使用的默认十进制分隔符。

请注意,区域设置确定的格式具有更高的优先级,并将被应用。

另请参见 NUMBER_GROUPINGTHOUSAND_SEPARATORUSE_THOUSAND_SEPARATOR

DEFAULT_AUTO_FIELD

默认值:' django.db.models.AutoField'

对于没有 primary_key=True 字段的模型使用的默认主键字段类型。

迁移自动创建的中间表

在为多对多关系创建新的自动创建的中间表时,将遵守 DEFAULT_AUTO_FIELD 的值。

不幸的是,迁移框架目前无法更新现有自动创建的中间表的主键。

这意味着如果您切换 DEFAULT_AUTO_FIELD 的值然后生成迁移,则相关模型的主键将被更新,中间表的外键也将被更新,但自动创建的中间表的主键将不会被迁移。

为了解决这个问题,您应该向迁移中添加 RunSQL 操作以执行所需的 ALTER TABLE 步骤。您可以通过 sqlmigratedbshell 或使用字段的 remote_field.through._meta.db_table 属性来检查现有的表名。

显式定义的中间模型已经由迁移系统处理。

允许对现有自动创建的中间表的主键进行自动迁移 可能会在以后实现

DEFAULT_CHARSET

默认值:'utf-8'

如果没有手动指定 MIME 类型,则所有 HttpResponse 对象使用的默认字符集。用于构造 Content-Type 标头。

DEFAULT_EXCEPTION_REPORTER

默认值:' django.views.debug.ExceptionReporter'

如果尚未为 HttpRequest 实例分配任何异常报告程序类,则使用此默认异常报告程序类。参见 自定义错误报告

DEFAULT_EXCEPTION_REPORTER_FILTER

默认值:' django.views.debug.SafeExceptionReporterFilter'

如果尚未为 HttpRequest 实例分配任何异常报告程序过滤器类,则使用此默认异常报告程序过滤器类。参见 过滤错误报告

DEFAULT_FROM_EMAIL

默认值:'webmaster@localhost'

站点管理员的自动化通信的默认电子邮件地址。此地址用于发件邮件的 From: 标头,并且可以采用所选电子邮件发送协议中有效的任何格式。

这不会影响发送给 ADMINSMANAGERS 的错误消息。有关此信息,请参见 SERVER_EMAIL

DEFAULT_INDEX_TABLESPACE

默认值:'' (空字符串)

如果后端支持(请参见 表空间),则用于未指定表空间的字段的索引的默认表空间。

DEFAULT_TABLESPACE

默认值:'' (空字符串)

如果后端支持(请参见 表空间),则用于未指定表空间的模型的默认表空间。

DISALLOWED_USER_AGENTS

默认值:[] (空列表)

表示不允许访问任何页面的用户代理字符串的已编译正则表达式对象列表,系统范围。将其用于机器人/爬虫。仅当安装了 CommonMiddleware 时才使用此项(请参见 中间件)。

EMAIL_BACKEND

默认值:' django.core.mail.backends.smtp.EmailBackend'

用于发送电子邮件的后端。有关可用后端的列表,请参见 电子邮件后端

EMAIL_FILE_PATH

默认值:未定义

文件电子邮件后端 用于存储输出文件的目录。

EMAIL_HOST

默认值:'localhost'

用于发送电子邮件的主机。

另见 EMAIL_PORT

EMAIL_HOST_PASSWORD

默认值:'' (空字符串)

用于在 EMAIL_HOST 中定义的 SMTP 服务器的密码。此设置与 EMAIL_HOST_USER 结合使用,用于对 SMTP 服务器进行身份验证。如果这两个设置中的任何一个为空,Django 不会尝试身份验证。

另见 EMAIL_HOST_USER

EMAIL_HOST_USER

默认值:'' (空字符串)

用于在 EMAIL_HOST 中定义的 SMTP 服务器的用户名。如果为空,Django 不会尝试身份验证。

另见 EMAIL_HOST_PASSWORD

EMAIL_PORT

默认值:25

用于在 EMAIL_HOST 中定义的 SMTP 服务器的端口。

EMAIL_SUBJECT_PREFIX

默认值:'[Django] '

使用 django.core.mail.mail_adminsdjango.core.mail.mail_managers 发送的电子邮件的主题行前缀。您可能需要包含尾随空格。

EMAIL_USE_LOCALTIME

默认值:False

是否以本地时区 (True) 或 UTC (False) 发送电子邮件的 SMTP Date 标头。

EMAIL_USE_TLS

默认值:False

是否在与 SMTP 服务器通信时使用 TLS(安全)连接。这用于显式 TLS 连接,通常在 587 端口上。如果您遇到连接挂起的情况,请参阅隐式 TLS 设置 EMAIL_USE_SSL

EMAIL_USE_SSL

默认值:False

是否在与 SMTP 服务器通信时使用隐式 TLS(安全)连接。在大多数电子邮件文档中,这种类型的 TLS 连接被称为 SSL。它通常在 465 端口上使用。如果您遇到问题,请参阅显式 TLS 设置 EMAIL_USE_TLS

请注意,EMAIL_USE_TLS/EMAIL_USE_SSL 是互斥的,因此只需将其中一个设置设置为 True

EMAIL_SSL_CERTFILE

默认值:None

如果 EMAIL_USE_SSLEMAIL_USE_TLSTrue,您可以选择指定要用于 SSL 连接的 PEM 格式证书链文件的路径。

EMAIL_SSL_KEYFILE

默认值:None

如果 EMAIL_USE_SSLEMAIL_USE_TLSTrue,您可以选择指定要用于 SSL 连接的 PEM 格式私钥文件的路径。

请注意,设置 EMAIL_SSL_CERTFILEEMAIL_SSL_KEYFILE 不会导致任何证书检查。它们被传递给底层的 SSL 连接。有关如何处理证书链文件和私钥文件的详细信息,请参阅 Python 的 ssl.SSLContext.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 MB)。

上传文件在被流式传输到文件系统之前,其最大大小(以字节为单位)。详情请参阅 文件管理

另见 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 将使用操作系统的标准临时目录。例如,这将在类 Unix 操作系统上默认为 /tmp

详情请参阅 文件管理

FIRST_DAY_OF_WEEK

默认值:0(星期日)

表示一周的第一天的数字。这在显示日历时特别有用。此值仅在不使用格式国际化或当前区域设置找不到格式时使用。

该值必须是 0 到 6 之间的整数,其中 0 表示星期日,1 表示星期一,依此类推。

FIXTURE_DIRS

默认值:[] (空列表)

除了每个应用程序的 fixtures 目录外,还搜索 fixture 文件的目录列表,按搜索顺序排列。

请注意,即使在 Windows 上,这些路径也应使用 Unix 风格的正斜杠。

请参阅 使用 fixture 提供数据Fixture 加载

FORCE_SCRIPT_NAME

默认值:None

如果非 None,这将用作任何 HTTP 请求中 SCRIPT_NAME 环境变量的值。此设置可用于覆盖服务器提供的 SCRIPT_NAME 值,该值可能是首选值的重写版本,也可能根本没有提供。它也由 django.setup() 用于在请求/响应周期之外(例如,在管理命令和独立脚本中)设置 URL 解析器的脚本前缀,以便在提供 FORCE_SCRIPT_NAME 时生成正确的 URL。

FORM_RENDERER

默认值:'django.forms.renderers.DjangoTemplates'

渲染表单和表单小部件的类。它必须实现 低级渲染 API。包含的表单渲染器包括:

FORMS_URLFIELD_ASSUME_HTTPS

Django 5.0 新特性。

自 5.0 版本起已弃用。

默认值:False

将此过渡设置设置为 True 以选择在 Django 5.x 版本周期中使用 "https" 作为 URLField.assume_scheme 的新默认值。

FORMAT_MODULE_PATH

默认值:None

包含项目区域设置的自定义格式定义的 Python 包的完整 Python 路径。如果非 None,Django 将检查当前区域设置命名的目录下是否存在 formats.py 文件,并将使用此文件中定义的格式。

包含格式定义的目录的名称应使用 区域设置名称 表示法,例如 dept_BRen_US 等。

例如,如果 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

默认值:[] (空列表)

描述应在通过电子邮件报告 HTTP 404 错误时忽略的 URL 的已编译正则表达式对象列表(参见 如何管理错误报告)。正则表达式与 request 的完整路径(包括查询字符串,如果存在)匹配。如果您的站点没有提供常用的文件,例如 favicon.icorobots.txt,则可以使用此设置。

只有在启用 BrokenLinkEmailsMiddleware 时才使用此设置(参见 中间件)。

INSTALLED_APPS

默认值:[] (空列表)

一个字符串列表,指定在此 Django 安装中启用的所有应用程序。每个字符串都应该是指向:

  • 应用程序配置类(推荐),或

  • 包含应用程序的包。

了解更多关于应用程序配置的信息.

使用应用程序注册表进行内省

您的代码永远不应该直接访问 INSTALLED_APPS。请改用 django.apps.apps

应用程序名称和标签在 INSTALLED_APPS 中必须唯一

应用程序 名称(应用程序包的点分 Python 路径)必须唯一。除了使用不同的名称复制其代码外,没有办法两次包含同一个应用程序。

应用程序 标签(默认为名称的最后一部分)也必须唯一。例如,您不能同时包含 django.contrib.authmyproject.auth。但是,您可以使用定义了不同 label 的自定义配置来重新标记应用程序。

无论 INSTALLED_APPS 是否引用应用程序配置类或应用程序包,这些规则都适用。

当多个应用程序提供相同资源(模板、静态文件、管理命令、翻译)的不同版本时,INSTALLED_APPS 中列出的第一个应用程序优先。

INTERNAL_IPS

默认值:[] (空列表)

IP 地址列表(作为字符串),它们:

  • 允许 debug() 上下文处理器向模板上下文添加一些变量。

  • 即使未登录为工作人员用户,也可以使用 admindocs 书签

  • AdminEmailHandler 电子邮件中标记为“内部”(而不是“外部”)。

LANGUAGE_CODE

默认值:'en-us'

表示此安装的语言代码的字符串。这应该采用标准的 语言 ID 格式。例如,美国英语是 "en-us"。另请参见 语言标识符列表国际化和本地化

它有三个用途:

  • 如果未使用区域设置中间件,它将决定向所有用户提供哪个翻译。

  • 如果区域设置中间件处于活动状态,如果无法确定用户的首选语言或网站不支持用户的首选语言,它将提供备用语言。对于给定文本,如果用户的首选语言没有翻译,它也会提供备用翻译。

  • 如果通过 unlocalize 过滤器或 {% localize off %} 标签显式禁用本地化,它将提供替代的备用本地化格式。有关详细信息,请参见 在模板中控制本地化

有关详细信息,请参见 Django 如何发现语言偏好

LANGUAGES

默认值:所有可用语言的列表。此列表不断增长,在此处包含副本将不可避免地很快过时。您可以查看 django/conf/global_settings.py 中当前已翻译语言的列表。

该列表是一个 2 元组列表,格式为(语言代码语言 名称)——例如,('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 中描述的配置方法。

除其他事项外,默认日志配置在 DEBUGFalse 时,将 HTTP 500 服务器错误传递给电子邮件日志处理程序。另请参见 配置日志记录

您可以查看 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_ROOTSTATIC_ROOT 必须具有不同的值。在引入 STATIC_ROOT 之前,通常依赖或回退到 MEDIA_ROOT 也用于提供静态文件;但是,由于这可能带来严重的安全性问题,因此存在一个验证检查以防止这种情况。

MEDIA_URL

默认值:'' (空字符串)

处理从 MEDIA_ROOT 提供的媒体的 URL,用于 管理存储的文件。如果设置为非空值,则必须以斜杠结尾。您需要 配置这些文件以便在开发和生产环境中提供服务

如果要在模板中使用 {{ MEDIA_URL }},请在 TEMPLATES'context_processors' 选项中添加 'django.template.context_processors.media'

示例:"https://media.example.com/"

警告

如果您接受来自不受信任用户的上传内容,则存在安全风险!有关缓解细节,请参阅安全指南中有关 用户上传的内容 的主题。

警告

MEDIA_URLSTATIC_URL 必须具有不同的值。有关更多详细信息,请参见 MEDIA_ROOT

注意

如果MEDIA_URL 是相对路径,则服务器提供的SCRIPT_NAME值(如果未设置,则为/)将作为前缀。这使得在子路径中提供Django应用程序服务更容易,而无需向设置添加额外的配置。

MIDDLEWARE

默认值:None

要使用的中间件列表。参见Middleware

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日”,而西班牙语可能会说“1月1日”。

请注意,相应的语言环境确定的格式具有更高的优先级,并将被应用。

参见allowed date format strings。另见DATE_FORMATDATETIME_FORMATTIME_FORMATYEAR_MONTH_FORMAT

NUMBER_GROUPING

默认值:0

数字整数部分中分组在一起的数字位数。

常见的用途是显示千位分隔符。如果此设置为0,则不会对数字应用任何分组。如果此设置大于0,则THOUSAND_SEPARATOR将用作这些组之间的分隔符。

某些语言环境使用非统一数字分组,例如en_IN中的10,00,00,000。对于这种情况,您可以提供一个序列,其中包含要应用的数字分组大小。第一个数字定义小数分隔符之前的组的大小,每个后续数字定义前面组的大小。如果序列以-1结尾,则不执行进一步的分组。如果序列以0结尾,则最后一个组大小将用于数字的其余部分。

en_IN的示例元组

NUMBER_GROUPING = (3, 2, 0)

请注意,区域设置确定的格式具有更高的优先级,并将被应用。

另见DECIMAL_SEPARATORTHOUSAND_SEPARATORUSE_THOUSAND_SEPARATOR

PREPEND_WWW

默认值:False

是否在没有“www.”子域的URL前面添加“www.”子域。只有在安装了CommonMiddleware时才使用此设置(参见Middleware)。另见APPEND_SLASH

ROOT_URLCONF

默认值:未定义

表示根URLconf的完整Python导入路径的字符串,例如"mydjangoapps.urls"。可以通过在传入的HttpRequest对象上设置属性urlconf来按每个请求覆盖它。详情请参见How Django processes a request

SECRET_KEY

默认值:'' (空字符串)

特定Django安装的密钥。它用于提供cryptographic signing,应将其设置为唯一且不可预测的值。

django-admin startproject会自动向每个新项目添加一个随机生成的SECRET_KEY

密钥的使用不应假设它是文本或字节。每次使用都应通过force_str()force_bytes()将其转换为所需的类型。

如果未设置SECRET_KEY,Django将拒绝启动。

警告

请保密此值。

使用已知的SECRET_KEY运行Django会破坏Django的许多安全保护措施,并可能导致权限提升和远程代码执行漏洞。

密钥用于:

当密钥不再设置为SECRET_KEY或包含在SECRET_KEY_FALLBACKS中时,以上所有内容都将失效。旋转密钥时,应暂时将旧密钥移动到SECRET_KEY_FALLBACKS。密钥不用于用户的密码,密钥旋转不会影响它们。

注意

django-admin startproject创建的默认settings.py文件为了方便起见会创建一个唯一的SECRET_KEY

SECRET_KEY_FALLBACKS

默认值:[]

特定Django安装的一系列备用密钥。这些用于允许SECRET_KEY的旋转。

为了旋转密钥,请设置一个新的SECRET_KEY并将以前的值移动到SECRET_KEY_FALLBACKS的开头。然后,当您准备好使使用它们的会话、密码重置令牌等过期时,从SECRET_KEY_FALLBACKS的末尾删除旧值。

注意

签名操作在计算上代价很高。在SECRET_KEY_FALLBACKS中有多个旧密钥值会增加所有与早期密钥不匹配的检查的额外开销。

因此,应该在适当的时间段后删除备用值,以允许密钥旋转。

使用密钥值时,不应假设它们是文本或字节。每次使用都应通过force_str()force_bytes() 将其转换为所需类型。

SECURE_CONTENT_TYPE_NOSNIFF

默认值:True

如果设置为True,则SecurityMiddleware 会在所有尚未设置此标头的响应中设置X-Content-Type-Options: nosniff 标头。

SECURE_CROSS_ORIGIN_OPENER_POLICY

默认值:'same-origin'

除非设置为None,否则SecurityMiddleware 会在所有尚未设置此标头的响应中设置Cross-Origin Opener Policy 标头,其值为提供的配置值。

SECURE_HSTS_INCLUDE_SUBDOMAINS

默认值:False

如果设置为True,则SecurityMiddleware 会向HTTP Strict Transport Security 标头添加includeSubDomains 指令。除非SECURE_HSTS_SECONDS 设置为非零值,否则此设置无效。

警告

错误设置此项可能会不可逆转地(对于SECURE_HSTS_SECONDS 的值而言)破坏您的网站。请先阅读HTTP Strict Transport Security 文档。

SECURE_HSTS_PRELOAD

默认值:False

如果设置为True,则SecurityMiddleware 会向HTTP Strict Transport Security 标头添加preload 指令。除非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:// 来确定请求是否安全。此方法对于 Django 的 CSRF 保护非常重要,您的代码或第三方应用程序也可能使用它。

但是,如果您的 Django 应用程序位于代理服务器之后,则代理服务器可能会“隐藏”原始请求是否使用 HTTPS。如果代理服务器和 Django 之间存在非 HTTPS 连接,则is_secure() 将始终返回False — 即使最终用户通过 HTTPS 发出请求也是如此。相反,如果代理服务器和 Django 之间存在 HTTPS 连接,则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 发出的),或者

  • 对于逗号分隔的协议列表(例如'https,http,http'),其初始的、最左边的值为'https'

只有在您控制代理服务器或对它是否适当地设置/去除此标头有其他保证时,才应设置此设置。

请注意,标头需要采用request.META 使用的格式——全部大写,并且可能以HTTP_ 开头。(请记住,Django 会自动在 x-header 名称的开头添加'HTTP_',然后才能在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 会在所有尚未设置此标头的响应中设置Referrer Policy 标头,其值为提供的配置值。

SECURE_SSL_HOST

默认值:None

如果为字符串(例如secure.example.com),则所有 SSL 重定向都将定向到此主机,而不是最初请求的主机(例如www.example.com)。如果SECURE_SSL_REDIRECTFalse,则此设置无效。

SECURE_SSL_REDIRECT

默认值:False

如果设置为True,则SecurityMiddleware重定向所有非 HTTPS 请求到 HTTPS(但不包括与SECURE_REDIRECT_EXEMPT 中列出的正则表达式匹配的那些 URL)。

注意

如果将其设置为True 导致无限重定向,则可能意味着您的网站运行在代理服务器之后,无法判断哪些请求是安全的,哪些不是。您的代理服务器可能设置了一个标头来指示安全的请求;您可以通过找出该标头是什么并相应地配置SECURE_PROXY_SSL_HEADER 设置来纠正此问题。

SERIALIZATION_MODULES

默认值:未定义

包含序列化程序定义(作为字符串提供)的模块字典,以该序列化类型的字符串标识符作为键。例如,要定义 YAML 序列化程序,请使用

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

SERVER_EMAIL

默认值:'root@localhost'

错误消息发出的电子邮件地址,例如发送给ADMINSMANAGERS 的那些消息。此地址用于From: 标头,并且可以采用所选电子邮件发送协议中有效的任何格式。

为什么我的电子邮件是从不同的地址发送的?

此地址仅用于错误消息。它不是使用send_mail()发送常规电子邮件的地址;有关该地址,请参见DEFAULT_FROM_EMAIL

SHORT_DATE_FORMAT

默认值:'m/d/Y'(例如 12/31/2003

可在模板中用于显示日期字段的可用格式。请注意,相应的区域设置指定的格式具有更高的优先级,并将被应用。参见allowed date format strings

另请参见DATE_FORMATSHORT_DATETIME_FORMAT

SHORT_DATETIME_FORMAT

默认值:'m/d/Y P'(例如 12/31/2003 4 p.m.

可在模板中用于显示日期时间字段的可用格式。请注意,相应的区域设置指定的格式具有更高的优先级,并将被应用。参见allowed date format strings

另请参见DATE_FORMATSHORT_DATE_FORMAT

SIGNING_BACKEND

默认值:'django.core.signing.TimestampSigner'

用于签名cookie和其他数据的后端。

另请参见加密签名文档。

SILENCED_SYSTEM_CHECKS

默认值:[] (空列表)

系统检查框架生成的(例如 ["models.W001"])消息标识符列表,您希望永久确认并忽略这些消息。静默检查不会输出到控制台。

另请参见系统检查框架文档。

STORAGES

默认值

{
    "default": {
        "BACKEND": "django.core.files.storage.FileSystemStorage",
    },
    "staticfiles": {
        "BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage",
    },
}

包含要与Django一起使用的所有存储设置的字典。它是一个嵌套字典,其内容将存储别名映射到包含单个存储选项的字典。

存储可以拥有您选择的任何别名。但是,有两个别名具有特殊的意义:

下面是一个定义名为example的自定义文件存储的settings.py代码片段示例:

STORAGES = {
    # ...
    "example": {
        "BACKEND": "django.core.files.storage.FileSystemStorage",
        "OPTIONS": {
            "location": "/example",
            "base_url": "/example/",
        },
    },
}

OPTIONS**kwargs中初始化时传递给BACKEND

可以从django.core.files.storage.storages检索存储后端的可用实例。使用与STORAGES中的后端定义相对应的键。

我的值是否与默认值合并?

定义此设置将覆盖默认值,并且不会与之合并。

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'

您可以通过将BACKEND设置为完全限定的路径(例如 'mypackage.whatever.Backend')来使用不随Django一起提供的模板后端。

NAME

默认值:见下文

此特定模板引擎的别名。它是一个标识符,允许选择用于渲染的引擎。别名在所有已配置的模板引擎中必须唯一。

如果未提供,它默认为定义引擎类的模块名称,即BACKEND的倒数第二个部分。例如,如果后端是'mypackage.whatever.Backend',则其默认名称为'whatever'

DIRS

默认值:[] (空列表)

引擎应按搜索顺序查找模板源文件的目录。

APP_DIRS

默认值:False

引擎是否应在已安装的应用程序内查找模板源文件。

注意

django-admin startproject创建的默认settings.py文件设置'APP_DIRS': True

OPTIONS

默认值:{}(空字典)

要传递给模板后端的额外参数。可用参数取决于模板后端。有关内置后端的选项,请参见DjangoTemplatesJinja2

TEST_RUNNER

默认值:'django.test.runner.DiscoverRunner'

用于启动测试套件的类的名称。参见使用不同的测试框架

TEST_NON_SERIALIZED_APPS

默认值:[] (空列表)

为了在TransactionTestCase和没有事务的数据库后端的测试之间恢复数据库状态,Django将在启动测试运行时序列化所有应用程序的内容,以便它可以在运行需要它的测试之前从该副本重新加载。

这会减慢测试运行程序的启动时间;如果您知道某些应用程序不需要此功能,则可以将其全名添加到此处(例如 'django.contrib.contenttypes')以将其从此序列化过程中排除。

THOUSAND_SEPARATOR

默认值:','(逗号)

格式化数字时使用的默认千位分隔符。仅当USE_THOUSAND_SEPARATORTrueNUMBER_GROUPING 大于 0 时使用此设置。

请注意,区域设置确定的格式具有更高的优先级,并将被应用。

另请参见NUMBER_GROUPINGDECIMAL_SEPARATORUSE_THOUSAND_SEPARATOR

TIME_FORMAT

默认值:'P'(例如 4 p.m.

用于在系统的任何部分显示时间字段的默认格式。请注意,区域设置指定的格式具有更高的优先级,并将被应用。参见allowed date format strings

另请参见DATE_FORMATDATETIME_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 模板过滤器中的格式字符串。

由区域设置决定的格式具有更高的优先级,并将被应用。

另请参阅 DATE_INPUT_FORMATSDATETIME_INPUT_FORMATS

TIME_ZONE

默认值:'America/Chicago'

表示此安装时区的字符串。请参见 时区列表

注意

由于 Django 最初发布时 TIME_ZONE 设置为 'America/Chicago',因此全局设置(如果在项目的 settings.py 中未定义任何内容,则使用)为了向后兼容性仍然保留为 'America/Chicago'。新的项目模板默认为 'UTC'

请注意,这不一定是服务器的时区。例如,一台服务器可以为多个 Django 驱动的站点提供服务,每个站点都有单独的时区设置。

USE_TZFalse 时,这是 Django 将存储所有日期时间的时区。当 USE_TZTrue 时,这是 Django 用于在模板中显示日期时间以及解释在表单中输入的日期时间的默认时区。

在 Unix 环境中(其中实现了 time.tzset()),Django 将 os.environ['TZ'] 变量设置为在 TIME_ZONE 设置中指定的时区。因此,所有视图和模型都将自动在此时区运行。但是,如果您使用的是如 手动配置设置 中所述的手动配置选项,Django 不会设置 TZ 环境变量。如果 Django 没有设置 TZ 环境变量,则您有责任确保您的进程在正确的环境中运行。

注意

Django 无法可靠地在 Windows 环境中使用备用时区。如果您在 Windows 上运行 Django,则必须将 TIME_ZONE 设置为与系统时区匹配。

USE_I18N

默认值:True

一个布尔值,指定是否应启用 Django 的翻译系统。这提供了一种出于性能原因将其关闭的方法。如果将其设置为 False,Django 将进行一些优化,以便不加载翻译机制。

另请参阅 LANGUAGE_CODEUSE_TZ

注意

django-admin startproject 创建的默认 settings.py 文件包含 USE_I18N = True,方便使用。

USE_THOUSAND_SEPARATOR

默认值:False

一个布尔值,指定是否使用千位分隔符显示数字。当设置为 True 时,Django 将使用 NUMBER_GROUPINGTHOUSAND_SEPARATOR 设置来格式化数字。后两个设置也可能由区域设置决定,区域设置优先。

另请参阅 DECIMAL_SEPARATORNUMBER_GROUPINGTHOUSAND_SEPARATOR

USE_TZ

默认值:True

一个布尔值,指定日期时间默认是否为时区感知的。如果将其设置为 True,Django 将在内部使用时区感知的日期时间。

USE_TZ 为 False 时,Django 将使用本地时间的非时区感知日期时间,除非解析 ISO 8601 格式的字符串,在这种情况下,如果存在时区信息,则始终会保留。

另请参阅 TIME_ZONEUSE_I18N

Django 5.0 中已更改

在较旧的版本中,默认值为 False

USE_X_FORWARDED_HOST

默认值:False

一个布尔值,指定是否优先使用 X-Forwarded-Host 头部而不是 Host 头部。只有在使用设置此头的代理时才应启用此选项。

此设置优先于 USE_X_FORWARDED_PORT。根据 RFC 7239 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

Django 的内置服务器(例如 runserver)将使用的 WSGI 应用程序对象的完整 Python 路径。django-admin startproject 管理命令将创建一个包含 application 可调用的标准 wsgi.py 文件,并将此设置指向该 application

如果未设置,则将使用 django.core.wsgi.get_wsgi_application() 的返回值。在这种情况下,runserver 的行为将与以前的 Django 版本相同。

YEAR_MONTH_FORMAT

默认值:'F Y'

在仅显示年份和月份的情况下,Django 管理员更改列表页面上(以及可能系统中的其他部分)使用的日期字段的默认格式。

例如,当 Django 管理员更改列表页面按日期细分进行筛选时,给定月份的标题将显示月份和年份。不同的区域设置有不同的格式。例如,美国英语会说“2006 年 1 月”,而另一个区域设置可能会说“2006/1 月”。

请注意,相应的语言环境确定的格式具有更高的优先级,并将被应用。

参见 allowed date format strings。另见 DATE_FORMATDATETIME_FORMATTIME_FORMATMONTH_DAY_FORMAT

X_FRAME_OPTIONS

默认值:'DENY'

XFrameOptionsMiddleware 使用的 X-Frame-Options 头部的默认值。参见 点击劫持防护 文档。

身份验证 (Auth)

django.contrib.auth 的设置。

AUTHENTICATION_BACKENDS

默认值:['django.contrib.auth.backends.ModelBackend']

尝试验证用户时使用的身份验证后端类列表(以字符串形式)。详情参见 身份验证后端文档

AUTH_USER_MODEL

默认值:'auth.User'

用于表示用户的模型。参见 替换自定义用户模型

警告

在项目生命周期中(即,一旦您创建并迁移了依赖于它的模型),您无法轻松更改 AUTH_USER_MODEL 设置。它旨在在项目启动时设置,并且它引用的模型必须在它所在的应用程序的第一次迁移中可用。更多详情参见 替换自定义用户模型

LOGIN_REDIRECT_URL

默认值:'/accounts/profile/'

LoginView 没有获得 next GET 参数时,登录后请求重定向到的 URL 或 命名 URL 模式

LOGIN_URL

默认值:'/accounts/login/'

使用 login_required() 装饰器、LoginRequiredMixinAccessMixin 或安装 LoginRequiredMiddleware 时,请求重定向到进行登录的 URL 或 命名 URL 模式

LOGOUT_REDIRECT_URL

默认值:None

如果 LogoutView 没有 next_page 属性,则请求在注销后重定向到的 URL 或 命名 URL 模式

如果为 None,则不会执行重定向,并且将呈现注销视图。

PASSWORD_RESET_TIMEOUT

默认值:259200(3 天,以秒为单位)

密码重置链接有效的秒数。

PasswordResetConfirmView 使用。

注意

减少此超时值不会影响攻击者暴力破解密码重置令牌的能力。令牌的设计目的是无需任何超时即可安全地防止暴力破解。

此超时旨在防止一些不太可能发生的攻击场景,例如有人访问可能包含旧的、未使用的密码重置令牌的电子邮件存档。

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.ScryptPasswordHasher",
]

AUTH_PASSWORD_VALIDATORS

默认值:[] (空列表)

用于检查用户密码强度的验证器列表。更多详情参见 密码验证。默认情况下,不执行任何验证,并且接受所有密码。

消息 (Messages)

django.contrib.messages 的设置。

MESSAGE_LEVEL

默认值:messages.INFO

设置消息框架将记录的最低消息级别。更多详情参见 消息级别

避免循环导入

如果您在 settings 文件中覆盖 MESSAGE_LEVEL 并依赖于任何内置常量,则必须直接导入常量模块以避免潜在的循环导入,例如:

from django.contrib.messages import constants as message_constants

MESSAGE_LEVEL = message_constants.DEBUG

如果需要,您可以根据上面 常量表 中的值直接指定常量的数值。

MESSAGE_STORAGE

默认值:'django.contrib.messages.storage.fallback.FallbackStorage'

控制 Django 存储消息数据的位置。有效值为:

  • 'django.contrib.messages.storage.fallback.FallbackStorage'

  • 'django.contrib.messages.storage.session.SessionStorage'

  • 'django.contrib.messages.storage.cookie.CookieStorage'

更多详情参见 消息存储后端

使用 Cookie 的后端——CookieStorageFallbackStorage——在设置 Cookie 时使用 SESSION_COOKIE_DOMAINSESSION_COOKIE_SECURESESSION_COOKIE_HTTPONLY 的值。

MESSAGE_TAGS

默认值

{
    messages.DEBUG: "debug",
    messages.INFO: "info",
    messages.SUCCESS: "success",
    messages.WARNING: "warning",
    messages.ERROR: "error",
}

这将消息级别映射到消息标签,通常在 HTML 中呈现为 CSS 类。如果您指定一个值,它将扩展默认值。这意味着您只需要指定需要覆盖的值。有关更多详细信息,请参见上面 显示消息

避免循环导入

如果您在 settings 文件中覆盖 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_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.JSONSerializer'

详情请参见会话序列化

站点

django.contrib.sites 的设置。

SITE_ID

默认值:未定义

django_site 数据库表中当前站点的ID(整数)。这用于应用程序数据可以与特定站点挂钩,并且单个数据库可以管理多个站点的內容。

静态文件

django.contrib.staticfiles 的设置。

STATIC_ROOT

默认值:None

collectstatic 将为部署收集静态文件的绝对路径。

示例:"/var/www/example.com/static/"

如果启用了staticfiles contrib应用程序(如默认项目模板中所示),则collectstatic管理命令会将静态文件收集到此目录中。有关用法的更多详细信息,请参阅有关管理静态文件 的方法。

警告

这应该是一个最初为空的目录,用于将静态文件从其永久位置收集到一个目录中,以便于部署;它**不是**永久存储静态文件的地方。您应该在staticfiles查找器(默认情况下为'static/'应用程序子目录以及您包含在STATICFILES_DIRS中的任何目录)能够找到的目录中执行此操作。

STATIC_URL

默认值:None

引用位于STATIC_ROOT中的静态文件时使用的URL。

示例:"static/""https://static.example.com/"

如果非None,这将用作资源定义Media类)和staticfiles应用程序的基本路径。

如果设置为非空值,则必须以斜杠结尾。

你可能需要配置这些文件以便在开发环境中提供服务,并且肯定需要在生产环境中这样做。

注意

如果STATIC_URL是相对路径,则服务器提供的SCRIPT_NAME值(如果未设置则为/)将作为前缀。这使得在子路径中提供Django应用程序的服务更加容易,而无需在设置中添加额外的配置。

STATICFILES_DIRS

默认值:[] (空列表)

如果启用了FileSystemFinder查找器(例如,如果您使用collectstaticfindstatic管理命令,或使用静态文件服务视图),则此设置定义了静态文件应用程序将遍历的附加位置。

这应该设置为包含附加文件目录的完整路径的字符串列表,例如:

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

请注意,即使在Windows上,这些路径也应该使用Unix风格的正斜杠(例如"C:/Users/user/mysite/extra_static_content")。

前缀(可选)

如果您想使用附加命名空间引用其中一个位置中的文件,您可以**可选地**提供前缀作为(prefix, path)元组,例如:

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

例如,假设您已将STATIC_URL设置为'static/',则collectstatic管理命令会将“stats”文件收集到STATIC_ROOT'downloads'子目录中。

这允许您在模板中使用'/static/downloads/polls_20101022.tar.gz'来引用本地文件'/opt/webfiles/stats/polls_20101022.tar.gz',例如:

<a href="{% static 'downloads/polls_20101022.tar.gz' %}">

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设置中,它将在STORAGES设置中由default键定义的默认文件存储中查找静态文件。

注意

使用AppDirectoriesFinder查找器时,请确保您的应用程序可以通过将应用程序添加到您站点的INSTALLED_APPS设置中,由静态文件找到。

静态文件查找器目前被认为是私有接口,因此此接口未记录。

核心设置主题索引

缓存

数据库

调试

电子邮件

错误报告

文件上传

表单

全球化(i18n/l10n

国际化(i18n

本地化(l10n

HTTP

日志

模型

安全

序列化

模板

测试

URL

返回顶部