Django常用配置及其说明
settings文件
APPEND_SLASH
默认: True
为 True
时,如果请求的 URL 不符合 URLconf 中的任何模式,并且不以斜线结尾,则会发出一个 HTTP 重定向到相同的URL,并附加一个斜线。注意,重定向可能会导致 POST 请求中提交的任何数据丢失。
CACHES
默认:
{
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
}
}
一个包含所有 Django 缓存配置的字典。它是一个嵌套的字典,其内容将缓存别名映射到一个包含单个缓存选项的字典中。
CACHES
配置必须设置一个 default
缓存;也可以指定任何数量的附加缓存。如果你使用的是本地内存缓存以外的缓存后端,或者你需要定义多个缓存,则需要其他选项。以下是可用的缓存选项。
BACKEND
默认: ''
(空字符串)
要使用的缓存后端。内置的缓存后端有:
'django.core.cache.backends.db.DatabaseCache'
'django.core.cache.backends.dummy.DummyCache'
'django.core.cache.backends.filebased.FileBasedCache'
'django.core.cache.backends.locmem.LocMemCache'
'django.core.cache.backends.memcached.MemcachedCache'
'django.core.cache.backends.memcached.PyLibMCCache'
你可以通过将 :set:BACKEND
设置为一个完全限定的缓存后端类的路径(例如 mypackage.backends.whatever.WhateverCache
),来使用一个不在 Django 中的缓存后端。
DATABASES
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydatabase',
'USER': 'mydatabaseuser',
'PASSWORD': 'mypassword',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
ENGINE
默认: ''
(空字符串)
要使用的数据库后端。内置的数据库后端有:
'django.db.backends.postgresql'
'django.db.backends.mysql'
'django.db.backends.sqlite3'
'django.db.backends.oracle'
你可以通过将 ENGINE
设置为一个完全限定的路径(例如: mypackage.backends.whatever
),来使用一个不在 Django 中的数据库后端。
CONN_MAX_AGE
默认: 0
一个数据库连接的寿命,以秒为整数。使用 0
在每次请求结束时关闭数据库连接——这是 Django 的历史行为,使用 None
则是无限的持久连接。
DATA_UPLOAD_MAX_MEMORY_SIZE
默认: 2621440
(即 2.5 MB)。
请求体在引发 SuspiciousOperation
(RequestDataTooBig
)之前的最大字节数。这个检查是在访问 request.body
或 request.POST
时进行的,是根据请求的总大小计算的,不包括任何文件上传数据。你可以将其设置为 None
以禁用该检查。预计会收到非常大的上传表单的应用程序应该调整这个配置。
请求数据的数量与处理请求和填充 GET 和 POST 字典所需的内存量相关。如果不进行检查,大的请求可能会被用作拒绝服务的攻击载体。由于 Web 服务器通常不会进行深层的请求检查,所以不可能在这个层面进行类似的检查。
FILE_UPLOAD_MAX_MEMORY_SIZE
默认: 2621440
(即 2.5 MB)。
上传的文件在被传送到文件系统之前的最大尺寸(以字节为单位)
FILE_UPLOAD_PERMISSIONS
默认: 0o644
设置新上传文件的数字模式(即 0o644
)。关于这些模式的更多信息,请参见 os.chmod()
的文档。
如果 None
,你会得到操作系统依赖的行为。在大多数平台上,临时文件的模式为 0o600
,从内存中保存的文件将使用系统的标准 umask 保存。
出于安全考虑,这些权限不应用于存储在 FILE_UPLOAD_TEMP_DIR
中的临时文件。
当使用 collectstatic
管理命令时,这个配置也决定了收集的静态文件的默认权限。
EMAIL_BACKEND
默认: django.core.mail.backends.smtp.EmailBackend
’
用于发送邮件的后端。
EMAIL_HOST
默认: 'localhost'
用于发送电子邮件的主机
EMAIL_PORT
默认: 25
EMAIL_HOST_PASSWORD
默认: ''
(空字符串)
在 EMAIL_HOST
中定义的 SMTP 服务器使用的密码。这个配置和 EMAIL_HOST_USER
中的密码一起使用。如果这两个配置中的任何一个为空,Django 就不会尝试验证。
EMAIL_HOST_USER
默认: ''
(空字符串)
在 EMAIL_HOST
中定义的 SMTP 服务器的用户名。如果为空,Django 将不会尝试认证
EMAIL_SUBJECT_PREFIX
默认: '[Django] '
用 django.core.mail.mail_admins
或 django.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_SSL
或 [EMAIL_USE_TLS是
True`,你可以选择指定一个 PEM 格式的证书链文件的路径,用于 SSL 连接。
EMAIL_SSL_KEYFILE
默认: None
如果 EMAIL_USE_SSL
或 EMAIL_USE_TLS
为 True
,你可以选择性地指定用于 SSL 连接的 PEM 格式化私钥文件的路径。
请注意,设置 EMAIL_SSL_CERTFILE
和 EMAIL_SSL_KEYFILE
不会导致任何证书检查。它们被传递给底层的 SSL 连接。
EMAIL_TIMEOUT
默认: None
指定阻止连接尝试等操作的超时时间,以秒为单位。
LOGGING
TEMPLATES
默认: []
(空列表)
一个包含所有 Django 模板引擎的配置的列表。列表中的每一项都是一个字典,包含了各个引擎的选项。
下面是一个配置,告诉 Django 模板引擎从每个安装好的应用程序中的 templates
子目录中加载模板:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'APP_DIRS': True,
DIRS:[] # 默认: [](空列表);按照搜索顺序,引擎应该查找模板源文件的目录
},
]