Here’s a full list of all available settings, in alphabetical order, and their
default values.
ABSOLUTE_URL_OVERRIDES
Default: {}
(Empty dictionary)
A dictionary mapping "app_label.model_name"
strings to functions that take
a model object and return its URL. This is a way of overriding
get_absolute_url()
methods on a per-installation basis. Example:
ABSOLUTE_URL_OVERRIDES = {
'blogs.weblog': lambda o: "/blogs/%s/" % o.slug,
'news.story': lambda o: "/stories/%s/%s/" % (o.pub_year, o.slug),
}
Note that the model name used in this setting should be all lower-case, regardless
of the case of the actual model class name.
ADMIN_FOR
Default: ()
(Empty tuple)
Used for admin-site settings modules, this should be a tuple of settings
modules (in the format 'foo.bar.baz'
) for which this site is an admin.
The admin site uses this in its automatically-introspected documentation of
models, views and template tags.
ADMINS
Default: ()
(Empty tuple)
A tuple that lists people who get code error notifications. When
DEBUG=False
and a view raises an exception, Django will email these people
with the full exception information. Each member of the tuple should be a tuple
of (Full name, email address). Example:
(('John', 'john@example.com'), ('Mary', 'mary@example.com'))
Note that Django will email all of these people whenever an error happens.
See Error reporting for more information.
ALLOWED_HOSTS
Default: []
(Empty list)
A list of strings representing the host/domain names that this Django site can
serve. This is a security measure to prevent an attacker from poisoning caches
and password reset emails with links to malicious hosts by submitting requests
with a fake HTTP Host
header, which is possible even under many
seemingly-safe webserver configurations.
Values in this list can be fully qualified names (e.g. 'www.example.com'
),
in which case they will be matched against the request’s Host
header
exactly (case-insensitive, not including port). A value beginning with a period
can be used as a subdomain wildcard: '.example.com'
will match
example.com
, www.example.com
, and any other subdomain of
example.com
. A value of '*'
will match anything; in this case you are
responsible to provide your own validation of the Host
header (perhaps in a
middleware; if so this middleware must be listed first in
MIDDLEWARE_CLASSES
).
If the Host
header (or X-Forwarded-Host
if
USE_X_FORWARDED_HOST
is enabled) does not match any value in this
list, the django.http.HttpRequest.get_host()
method will raise
SuspiciousOperation
.
When DEBUG
is True
or when running tests, host validation is
disabled; any host will be accepted. Thus it’s usually only necessary to set it
in production.
This validation only applies via get_host()
;
if your code accesses the Host
header directly from request.META
you
are bypassing this security protection.
ALLOWED_INCLUDE_ROOTS
Default: ()
(Empty tuple)
A tuple of strings representing allowed prefixes for the {% ssi %}
template
tag. This is a security measure, so that template authors can’t access files
that they shouldn’t be accessing.
For example, if ALLOWED_INCLUDE_ROOTS
is ('/home/html', '/var/www')
,
then {% ssi /home/html/foo.txt %}
would work, but {% ssi /etc/passwd %}
wouldn’t.
APPEND_SLASH
Default: True
When set to True
, if the request URL does not match any of the patterns
in the URLconf and it doesn’t end in a slash, an HTTP redirect is issued to the
same URL with a slash appended. Note that the redirect may cause any data
submitted in a POST request to be lost.
The APPEND_SLASH
setting is only used if
CommonMiddleware
is installed
(see Middleware). See also PREPEND_WWW
.
AUTHENTICATION_BACKENDS
Default: ('django.contrib.auth.backends.ModelBackend',)
A tuple of authentication backend classes (as strings) to use when attempting to
authenticate a user. See the authentication backends documentation for details.
CACHES
Default:
{
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
}
}
A dictionary containing the settings for all caches to be used with
Django. It is a nested dictionary whose contents maps cache aliases
to a dictionary containing the options for an individual cache.
The CACHES
setting must configure a default
cache;
any number of additional caches may also be specified. If you
are using a cache backend other than the local memory cache, or
you need to define multiple caches, other options will be required.
The following cache options are available.
BACKEND
Default: ''
(Empty string)
The cache backend to use. The built-in cache backends are:
'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'
You can use a cache backend that doesn’t ship with Django by setting
BACKEND
to a fully-qualified path of a cache
backend class (i.e. mypackage.backends.whatever.WhateverCache
).
Writing a whole new cache backend from scratch is left as an exercise
to the reader; see the other backends for examples.
KEY_FUNCTION
A string containing a dotted path to a function that defines how to
compose a prefix, version and key into a final cache key. The default
implementation is equivalent to the function:
def make_key(key, key_prefix, version):
return ':'.join([key_prefix, str(version), key])
You may use any key function you want, as long as it has the same
argument signature.
See the cache documentation for more information.
KEY_PREFIX
Default: ''
(Empty string)
A string that will be automatically included (prepended by default) to
all cache keys used by the Django server.
See the cache documentation for more information.
LOCATION
Default: ''
(Empty string)
The location of the cache to use. This might be the directory for a
file system cache, a host and port for a memcache server, or simply an
identifying name for a local memory cache. e.g.:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION': '/var/tmp/django_cache',
}
}
OPTIONS
Default: None
Extra parameters to pass to the cache backend. Available parameters
vary depending on your cache backend.
Some information on available parameters can be found in the
Cache Backends documentation. For more information,
consult your backend module’s own documentation.
TIMEOUT
Default: 300
The number of seconds before a cache entry is considered stale.
VERSION
Default: 1
The default version number for cache keys generated by the Django server.
See the cache documentation for more information.
CACHE_MIDDLEWARE_ALIAS
Default: default
The cache connection to use for the cache middleware.
CACHE_MIDDLEWARE_ANONYMOUS_ONLY
Default: False
If the value of this setting is True
, only anonymous requests (i.e., not
those made by a logged-in user) will be cached. Otherwise, the middleware
caches every page that doesn’t have GET or POST parameters.
If you set the value of this setting to True
, you should make sure you’ve
activated AuthenticationMiddleware
.
See Django’s cache framework.
CACHE_MIDDLEWARE_KEY_PREFIX
Default: ''
(Empty string)
The cache key prefix that the cache middleware should use.
See Django’s cache framework.
CACHE_MIDDLEWARE_SECONDS
Default: 600
The default number of seconds to cache a page when the caching middleware or
cache_page()
decorator is used.
See Django’s cache framework.
CSRF_COOKIE_DOMAIN
Default: None
The domain to be used when setting the CSRF cookie. This can be useful for
easily allowing cross-subdomain requests to be excluded from the normal cross
site request forgery protection. It should be set to a string such as
".example.com"
to allow a POST request from a form on one subdomain to be
accepted by accepted by a view served from another subdomain.
Please note that the presence of this setting does not imply that Django’s CSRF
protection is safe from cross-subdomain attacks by default - please see the
CSRF limitations section.
CSRF_COOKIE_PATH
Default: '/'
The path set on the CSRF cookie. This should either match the URL path of your
Django installation or be a parent of that path.
This is useful if you have multiple Django instances running under the same
hostname. They can use different cookie paths, and each instance will only see
its own CSRF cookie.
CSRF_COOKIE_SECURE
Default: False
Whether to use a secure cookie for the CSRF cookie. If this is set to True
,
the cookie will be marked as “secure,” which means browsers may ensure that the
cookie is only sent under an HTTPS connection.
CSRF_FAILURE_VIEW
Default: 'django.views.csrf.csrf_failure'
A dotted path to the view function to be used when an incoming request
is rejected by the CSRF protection. The function should have this signature:
def csrf_failure(request, reason="")
where reason
is a short message (intended for developers or logging, not for
end users) indicating the reason the request was rejected. See
Cross Site Request Forgery protection.
DATABASES
Default: {}
(Empty dictionary)
A dictionary containing the settings for all databases to be used with
Django. It is a nested dictionary whose contents maps database aliases
to a dictionary containing the options for an individual database.
The DATABASES
setting must configure a default
database;
any number of additional databases may also be specified.
The simplest possible settings file is for a single-database setup using
SQLite. This can be configured using the following:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'mydatabase'
}
}
For other database backends, or more complex SQLite configurations, other options
will be required. The following inner options are available.
ENGINE
Default: ''
(Empty string)
The database backend to use. The built-in database backends are:
'django.db.backends.postgresql_psycopg2'
'django.db.backends.mysql'
'django.db.backends.sqlite3'
'django.db.backends.oracle'
You can use a database backend that doesn’t ship with Django by setting
ENGINE
to a fully-qualified path (i.e.
mypackage.backends.whatever
). Writing a whole new database backend from
scratch is left as an exercise to the reader; see the other backends for
examples.
HOST
Default: ''
(Empty string)
Which host to use when connecting to the database. An empty string means
localhost. Not used with SQLite.
If this value starts with a forward slash ('/'
) and you’re using MySQL,
MySQL will connect via a Unix socket to the specified socket. For example:
If you’re using MySQL and this value doesn’t start with a forward slash, then
this value is assumed to be the host.
If you’re using PostgreSQL, by default (empty HOST
), the connection
to the database is done through UNIX domain sockets (‘local’ lines in
pg_hba.conf
). If you want to connect through TCP sockets, set
HOST
to ‘localhost’ or ‘127.0.0.1’ (‘host’ lines in pg_hba.conf
).
On Windows, you should always define HOST
, as UNIX domain sockets
are not available.
NAME
Default: ''
(Empty string)
The name of the database to use. For SQLite, it’s the full path to the database
file. When specifying the path, always use forward slashes, even on Windows
(e.g. C:/homes/user/mysite/sqlite3.db
).
OPTIONS
Default: {}
(Empty dictionary)
Extra parameters to use when connecting to the database. Available parameters
vary depending on your database backend.
Some information on available parameters can be found in the
Database Backends documentation. For more information,
consult your backend module’s own documentation.
PASSWORD
Default: ''
(Empty string)
The password to use when connecting to the database. Not used with SQLite.
PORT
Default: ''
(Empty string)
The port to use when connecting to the database. An empty string means the
default port. Not used with SQLite.
USER
Default: ''
(Empty string)
The username to use when connecting to the database. Not used with SQLite.
TEST_CHARSET
Default: None
The character set encoding used to create the test database. The value of this
string is passed directly through to the database, so its format is
backend-specific.
Supported for the PostgreSQL (postgresql_psycopg2
) and MySQL (mysql
)
backends.
TEST_COLLATION
Default: None
The collation order to use when creating the test database. This value is
passed directly to the backend, so its format is backend-specific.
Only supported for the mysql
backend (see the MySQL manual for details).
TEST_DEPENDENCIES
Default: ['default']
, for all databases other than default
,
which has no dependencies.
The creation-order dependencies of the database. See the documentation
on controlling the creation order of test databases for details.
TEST_MIRROR
Default: None
The alias of the database that this database should mirror during
testing.
This setting exists to allow for testing of master/slave
configurations of multiple databases. See the documentation on
testing master/slave configurations for details.
TEST_NAME
Default: None
The name of database to use when running the test suite.
If the default value (None
) is used with the SQLite database engine, the
tests will use a memory resident database. For all other database engines the
test database will use the name 'test_' + DATABASE_NAME
.
See The test database.
TEST_CREATE
Default: True
This is an Oracle-specific setting.
If it is set to False
, the test tablespaces won’t be automatically created
at the beginning of the tests and dropped at the end.
TEST_USER
Default: None
This is an Oracle-specific setting.
The username to use when connecting to the Oracle database that will be used
when running tests. If not provided, Django will use 'test_' + USER
.
TEST_USER_CREATE
Default: True
This is an Oracle-specific setting.
If it is set to False
, the test user won’t be automatically created at the
beginning of the tests and dropped at the end.
TEST_PASSWD
Default: None
This is an Oracle-specific setting.
The password to use when connecting to the Oracle database that will be used
when running tests. If not provided, Django will use a hardcoded default value.
TEST_TBLSPACE
Default: None
This is an Oracle-specific setting.
The name of the tablespace that will be used when running tests. If not
provided, Django will use 'test_' + NAME
.
TEST_TBLSPACE_TMP
Default: None
This is an Oracle-specific setting.
The name of the temporary tablespace that will be used when running tests. If
not provided, Django will use 'test_' + NAME + '_temp'
.
DEBUG
Default: False
A boolean that turns on/off debug mode.
Never deploy a site into production with DEBUG
turned on.
Did you catch that? NEVER deploy a site into production with DEBUG
turned on.
One of the main features of debug mode is the display of detailed error pages.
If your app raises an exception when DEBUG
is True
, Django will
display a detailed traceback, including a lot of metadata about your
environment, such as all the currently defined Django settings (from
settings.py
).
As a security measure, Django will not include settings that might be
sensitive (or offensive), such as SECRET_KEY
or
PROFANITIES_LIST
. Specifically, it will exclude any setting whose
name includes any of the following:
'API'
'KEY'
'PASS'
'PROFANITIES_LIST'
'SECRET'
'SIGNATURE'
'TOKEN'
Note that these are partial matches. 'PASS'
will also match PASSWORD,
just as 'TOKEN'
will also match TOKENIZED and so on.
Still, note that there are always going to be sections of your debug output
that are inappropriate for public consumption. File paths, configuration
options and the like all give attackers extra information about your server.
It is also important to remember that when running with DEBUG
turned on, Django will remember every SQL query it executes. This is useful
when you’re debugging, but it’ll rapidly consume memory on a production server.
DEBUG_PROPAGATE_EXCEPTIONS
Default: False
If set to True, Django’s normal exception handling of view functions
will be suppressed, and exceptions will propagate upwards. This can
be useful for some test setups, and should never be used on a live
site.
DEFAULT_CHARSET
Default: 'utf-8'
Default charset to use for all HttpResponse
objects, if a MIME type isn’t
manually specified. Used with DEFAULT_CONTENT_TYPE
to construct the
Content-Type
header.
DEFAULT_CONTENT_TYPE
Default: 'text/html'
Default content type to use for all HttpResponse
objects, if a MIME type
isn’t manually specified. Used with DEFAULT_CHARSET
to construct
the Content-Type
header.
DEFAULT_FROM_EMAIL
Default: 'webmaster@localhost'
Default email address to use for various automated correspondence from the
site manager(s).
DEFAULT_INDEX_TABLESPACE
Default: ''
(Empty string)
Default tablespace to use for indexes on fields that don’t specify
one, if the backend supports it (see Tablespaces).
DEFAULT_TABLESPACE
Default: ''
(Empty string)
Default tablespace to use for models that don’t specify one, if the
backend supports it (see Tablespaces).
DISALLOWED_USER_AGENTS
Default: ()
(Empty tuple)
List of compiled regular expression objects representing User-Agent strings that
are not allowed to visit any page, systemwide. Use this for bad robots/crawlers.
This is only used if CommonMiddleware
is installed (see
Middleware).
EMAIL_BACKEND
Default: 'django.core.mail.backends.smtp.EmailBackend'
The backend to use for sending emails. For the list of available backends see
Sending email.
EMAIL_FILE_PATH
Default: Not defined
The directory used by the file
email backend to store output files.
EMAIL_HOST
Default: 'localhost'
The host to use for sending email.
See also EMAIL_PORT
.
EMAIL_HOST_PASSWORD
Default: ''
(Empty string)
Password to use for the SMTP server defined in EMAIL_HOST
. This
setting is used in conjunction with EMAIL_HOST_USER
when
authenticating to the SMTP server. If either of these settings is empty,
Django won’t attempt authentication.
See also EMAIL_HOST_USER
.
EMAIL_HOST_USER
Default: ''
(Empty string)
Username to use for the SMTP server defined in EMAIL_HOST
.
If empty, Django won’t attempt authentication.
See also EMAIL_HOST_PASSWORD
.
EMAIL_PORT
Default: 25
Port to use for the SMTP server defined in EMAIL_HOST
.
EMAIL_SUBJECT_PREFIX
Default: '[Django] '
Subject-line prefix for email messages sent with django.core.mail.mail_admins
or django.core.mail.mail_managers
. You’ll probably want to include the
trailing space.
EMAIL_USE_TLS
Default: False
Whether to use a TLS (secure) connection when talking to the SMTP server.
FILE_CHARSET
Default: 'utf-8'
The character encoding used to decode any files read from disk. This includes
template files and initial SQL data files.
FILE_UPLOAD_HANDLERS
Default:
("django.core.files.uploadhandler.MemoryFileUploadHandler",
"django.core.files.uploadhandler.TemporaryFileUploadHandler",)
A tuple of handlers to use for uploading. See Managing files for details.
FILE_UPLOAD_MAX_MEMORY_SIZE
Default: 2621440
(i.e. 2.5 MB).
The maximum size (in bytes) that an upload will be before it gets streamed to
the file system. See Managing files for details.
FILE_UPLOAD_PERMISSIONS
Default: None
The numeric mode (i.e. 0644
) to set newly uploaded files to. For
more information about what these modes mean, see the documentation for
os.chmod()
.
If this isn’t given or is None
, you’ll get operating-system
dependent behavior. On most platforms, temporary files will have a mode
of 0600
, and files saved from memory will be saved using the
system’s standard umask.
警告
Always prefix the mode with a 0.
If you’re not familiar with file modes, please note that the leading
0
is very important: it indicates an octal number, which is the
way that modes must be specified. If you try to use 644
, you’ll
get totally incorrect behavior.
FILE_UPLOAD_TEMP_DIR
Default: None
The directory to store data temporarily while uploading files. If None
,
Django will use the standard temporary directory for the operating system. For
example, this will default to ‘/tmp’ on *nix-style operating systems.
See Managing files for details.
FIRST_DAY_OF_WEEK
Default: 0
(Sunday)
Number representing the first day of the week. This is especially useful
when displaying a calendar. This value is only used when not using
format internationalization, or when a format cannot be found for the
current locale.
The value must be an integer from 0 to 6, where 0 means Sunday, 1 means
Monday and so on.
FIXTURE_DIRS
Default: ()
(Empty tuple)
List of directories searched for fixture files, in addition to the
fixtures
directory of each application, in search order.
Note that these paths should use Unix-style forward slashes, even on Windows.
See Providing initial data with fixtures and Fixture loading.
FORCE_SCRIPT_NAME
Default: None
If not None
, this will be used as the value of the SCRIPT_NAME
environment variable in any HTTP request. This setting can be used to override
the server-provided value of SCRIPT_NAME
, which may be a rewritten version
of the preferred value or not supplied at all.
IGNORABLE_404_URLS
Default: ()
List of compiled regular expression objects describing URLs that should be
ignored when reporting HTTP 404 errors via email (see
Error reporting). Regular expressions are matched against
request's full paths
(including
query string, if any). Use this if your site does not provide a commonly
requested file such as favicon.ico
or robots.txt
, or if it gets
hammered by script kiddies.
This is only used if SEND_BROKEN_LINK_EMAILS
is set to True
and
CommonMiddleware
is installed (see Middleware).
INSTALLED_APPS
Default: ()
(Empty tuple)
A tuple of strings designating all applications that are enabled in this Django
installation. Each string should be a full Python path to a Python package that
contains a Django application, as created by django-admin.py startapp
.
App names must be unique
The application names (that is, the final dotted part of the
path to the module containing models.py
) defined in
INSTALLED_APPS
must be unique. For example, you can’t
include both django.contrib.auth
and myproject.auth
in
INSTALLED_APPS.
INTERNAL_IPS
Default: ()
(Empty tuple)
A tuple of IP addresses, as strings, that:
- See debug comments, when
DEBUG
is True
- Receive X headers if the
XViewMiddleware
is installed (see
Middleware)
LANGUAGES
Default: A tuple of all available languages. This list is continually growing
and including a copy here would inevitably become rapidly out of date. You can
see the current list of translated languages by looking in
django/conf/global_settings.py
(or view the online source).
The list is a tuple of two-tuples in the format (language code, language
name)
, the language code
part should be a
language name – for example, ('ja', 'Japanese')
.
This specifies which languages are available for language selection. See
Internationalization and localization.
Generally, the default value should suffice. Only set this setting if you want
to restrict language selection to a subset of the Django-provided languages.
If you define a custom LANGUAGES
setting, it’s OK to mark the
languages as translation strings (as in the default value referred to above)
– but use a “dummy” gettext()
function, not the one in
django.utils.translation
. You should never import
django.utils.translation
from within your settings file, because that
module in itself depends on the settings, and that would cause a circular
import.
The solution is to use a “dummy” gettext()
function. Here’s a sample
settings file:
gettext = lambda s: s
LANGUAGES = (
('de', gettext('German')),
('en', gettext('English')),
)
With this arrangement, django-admin.py makemessages
will still find and
mark these strings for translation, but the translation won’t happen at
runtime – so you’ll have to remember to wrap the languages in the real
gettext()
in any code that uses LANGUAGES
at runtime.
LOCALE_PATHS
Default: ()
(Empty tuple)
A tuple of directories where Django looks for translation files.
See How Django discovers translations.
Example:
LOCALE_PATHS = (
'/home/www/project/common_files/locale',
'/var/local/translations/locale'
)
Django will look within each of these paths for the <locale_code>/LC_MESSAGES
directories containing the actual translation files.
LOGGING
Default: A logging configuration dictionary.
A data structure containing configuration information. The contents of
this data structure will be passed as the argument to the
configuration method described in LOGGING_CONFIG
.
The default logging configuration passes HTTP 500 server errors to an
email log handler; all other log messages are given to a NullHandler.
LOGGING_CONFIG
Default: 'django.utils.log.dictConfig'
A path to a callable that will be used to configure logging in the
Django project. Points at a instance of Python’s dictConfig
configuration method by default.
If you set LOGGING_CONFIG
to None
, the logging
configuration process will be skipped.
LOGIN_REDIRECT_URL
Default: '/accounts/profile/'
The URL where requests are redirected after login when the
contrib.auth.login
view gets no next
parameter.
This is used by the login_required()
decorator, for example.
This setting now also accepts view function names and
named URL patterns which can be used to reduce
configuration duplication since you no longer have to define the URL in two
places (settings
and URLconf).
For backward compatibility reasons the default remains unchanged.
LOGIN_URL
Default: '/accounts/login/'
The URL where requests are redirected for login, especially when using the
login_required()
decorator.
This setting now also accepts view function names and
named URL patterns which can be used to reduce
configuration duplication since you no longer have to define the URL in two
places (settings
and URLconf).
For backward compatibility reasons the default remains unchanged.
LOGOUT_URL
Default: '/accounts/logout/'
LOGIN_URL counterpart.
MANAGERS
Default: ()
(Empty tuple)
A tuple in the same format as ADMINS
that specifies who should get
broken-link notifications when SEND_BROKEN_LINK_EMAILS
is True
.
MESSAGE_LEVEL
Default: messages.INFO
Sets the minimum message level that will be recorded by the messages
framework. See the messages documentation for
more details.
MESSAGE_STORAGE
Default: 'django.contrib.messages.storage.fallback.FallbackStorage'
Controls where Django stores message data. See the
messages documentation for more details.
MIDDLEWARE_CLASSES
Default:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',)
A tuple of middleware classes to use. See Middleware.
NUMBER_GROUPING
Default: 0
Number of digits grouped together on the integer part of a number.
Common use is to display a thousand separator. If this setting is 0
, then
no grouping will be applied to the number. If this setting is greater than
0
, then THOUSAND_SEPARATOR
will be used as the separator between
those groups.
Note that if USE_L10N
is set to True
, then the locale-dictated
format has higher precedence and will be applied instead.
See also DECIMAL_SEPARATOR
, THOUSAND_SEPARATOR
and
USE_THOUSAND_SEPARATOR
.
PASSWORD_HASHERS
See How Django stores passwords.
Default:
('django.contrib.auth.hashers.PBKDF2PasswordHasher',
'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
'django.contrib.auth.hashers.BCryptPasswordHasher',
'django.contrib.auth.hashers.SHA1PasswordHasher',
'django.contrib.auth.hashers.MD5PasswordHasher',
'django.contrib.auth.hashers.UnsaltedMD5PasswordHasher',
'django.contrib.auth.hashers.CryptPasswordHasher',)
PASSWORD_RESET_TIMEOUT_DAYS
Default: 3
The number of days a password reset link is valid for. Used by the
django.contrib.auth
password reset mechanism.
PROFANITIES_LIST
Default: ()
(Empty tuple)
A tuple of profanities, as strings, that will be forbidden in comments when
COMMENTS_ALLOW_PROFANITIES
is False
.
RESTRUCTUREDTEXT_FILTER_SETTINGS
Default: {}
A dictionary containing settings for the restructuredtext
markup filter from
the django.contrib.markup application. They override
the default writer settings. See the Docutils restructuredtext writer settings
docs for details.
ROOT_URLCONF
Default: Not defined
A string representing the full Python import path to your root URLconf. For example:
"mydjangoapps.urls"
. Can be overridden on a per-request basis by
setting the attribute urlconf
on the incoming HttpRequest
object. See How Django processes a request for details.
SECRET_KEY
Default: ''
(Empty string)
A secret key for a particular Django installation. This is used to provide
cryptographic signing, and should be set to a unique,
unpredictable value.
django-admin.py startproject
automatically adds a
randomly-generated SECRET_KEY
to each new project.
警告
Keep this value secret.
Running Django with a known SECRET_KEY
defeats many of Django’s
security protections, and can lead to privilege escalation and remote code
execution vulnerabilities.
Django will now refuse to start if
SECRET_KEY
is not set.
SEND_BROKEN_LINK_EMAILS
Default: False
Whether to send an email to the MANAGERS
each time somebody visits
a Django-powered page that is 404ed with a non-empty referer (i.e., a broken
link). This is only used if CommonMiddleware
is installed (see
Middleware). See also IGNORABLE_404_URLS
and
Error reporting.
SERIALIZATION_MODULES
Default: Not defined.
A dictionary of modules containing serializer definitions (provided as
strings), keyed by a string identifier for that serialization type. For
example, to define a YAML serializer, use:
SERIALIZATION_MODULES = { 'yaml' : 'path.to.yaml_serializer' }
SERVER_EMAIL
Default: 'root@localhost'
The email address that error messages come from, such as those sent to
ADMINS
and MANAGERS
.
SESSION_COOKIE_AGE
Default: 1209600
(2 weeks, in seconds)
The age of session cookies, in seconds. See How to use sessions.
SESSION_COOKIE_DOMAIN
Default: None
The domain to use for session cookies. Set this to a string such as
".example.com"
for cross-domain cookies, or use None
for a standard
domain cookie. See the How to use sessions.
SESSION_COOKIE_HTTPONLY
Default: True
Whether to use HTTPOnly flag on the session cookie. If this is set to
True
, client-side JavaScript will not to be able to access the
session cookie.
HTTPOnly is a flag included in a Set-Cookie HTTP response header. It
is not part of the RFC 2109 standard for cookies, and it isn’t honored
consistently by all browsers. However, when it is honored, it can be a
useful way to mitigate the risk of client side script accessing the
protected cookie data.
The default value of the setting was changed from False
to True
.
SESSION_COOKIE_NAME
Default: 'sessionid'
The name of the cookie to use for sessions. This can be whatever you want (but
should be different from LANGUAGE_COOKIE_NAME
).
See the How to use sessions.
SESSION_COOKIE_PATH
Default: '/'
The path set on the session cookie. This should either match the URL path of your
Django installation or be parent of that path.
This is useful if you have multiple Django instances running under the same
hostname. They can use different cookie paths, and each instance will only see
its own session cookie.
SESSION_COOKIE_SECURE
Default: False
Whether to use a secure cookie for the session cookie. If this is set to
True
, the cookie will be marked as “secure,” which means browsers may
ensure that the cookie is only sent under an HTTPS connection.
See the How to use sessions.
SESSION_ENGINE
Default: django.contrib.sessions.backends.db
Controls where Django stores session data. Valid values are:
'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'
See How to use sessions.
SESSION_EXPIRE_AT_BROWSER_CLOSE
Default: False
Whether to expire the session when the user closes his or her browser.
See the How to use sessions.
SESSION_FILE_PATH
Default: None
If you’re using file-based session storage, this sets the directory in
which Django will store session data. See How to use sessions. When
the default value (None
) is used, Django will use the standard temporary
directory for the system.
SESSION_SAVE_EVERY_REQUEST
Default: False
Whether to save the session data on every request. See
How to use sessions.
SIGNING_BACKEND
Default: ‘django.core.signing.TimestampSigner’
The backend used for signing cookies and other data.
See also the Cryptographic signing documentation.
SITE_ID
Default: Not defined
The ID, as an integer, of the current site in the django_site
database
table. This is used so that application data can hook into specific site(s)
and a single database can manage content for multiple sites.
See The “sites” framework.
STATIC_ROOT
Default: ''
(Empty string)
The absolute path to the directory where collectstatic
will collect
static files for deployment.
Example: "/var/www/example.com/static/"
If the staticfiles contrib app is enabled
(default) the collectstatic
management command will collect static
files into this directory. See the howto on managing static
files for more details about usage.
警告
This should be an (initially empty) destination directory for collecting
your static files from their permanent locations into one directory for
ease of deployment; it is not a place to store your static files
permanently. You should do that in directories that will be found by
staticfiles‘s
finders
, which by default, are
'static/'
app sub-directories and any directories you include in
STATICFILES_DIRS
).
See staticfiles reference and
STATIC_URL
.
STATIC_URL
Default: None
URL to use when referring to static files located in STATIC_ROOT
.
Example: "/static/"
or "http://static.example.com/"
If not None
, this will be used as the base path for
media definitions and the
staticfiles app.
It must end in a slash if set to a non-empty value.
See STATIC_ROOT
.
TEMPLATE_CONTEXT_PROCESSORS
Default:
("django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.tz",
"django.contrib.messages.context_processors.messages")
A tuple of callables that are used to populate the context in RequestContext
.
These callables take a request object as their argument and return a dictionary
of items to be merged into the context.
The django.core.context_processors.tz
context processor
was added in this release.
TEMPLATE_DEBUG
Default: False
A boolean that turns on/off template debug mode. If this is True
, the fancy
error page will display a detailed report for any exception raised during
template rendering. This report contains the relevant snippet of the template,
with the appropriate line highlighted.
Note that Django only displays fancy error pages if DEBUG
is True
, so
you’ll want to set that to take advantage of this setting.
See also DEBUG
.
TEMPLATE_LOADERS
Default:
('django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader')
A tuple of template loader classes, specified as strings. Each Loader
class
knows how to import templates from a particular source. Optionally, a tuple can be
used instead of a string. The first item in the tuple should be the Loader
‘s
module, subsequent items are passed to the Loader
during initialization. See
The Django template language: For Python programmers.
TEMPLATE_STRING_IF_INVALID
Default: ''
(Empty string)
Output, as a string, that the template system should use for invalid (e.g.
misspelled) variables. See How invalid variables are handled..
TIME_ZONE
Default: 'America/Chicago'
The meaning of this setting now depends on the value of
USE_TZ
.
A string representing the time zone for this installation, or
None
. See available choices. (Note that list of available
choices lists more than one on the same line; you’ll want to use just
one of the choices for a given time zone. For instance, one line says
'Europe/London GB GB-Eire'
, but you should use the first bit of
that – 'Europe/London'
– as your TIME_ZONE
setting.)
Note that this isn’t necessarily the time zone of the server. For example, one
server may serve multiple Django-powered sites, each with a separate time zone
setting.
When USE_TZ
is False
, this is the time zone in which Django
will store all datetimes. When USE_TZ
is True
, this is the
default time zone that Django will use to display datetimes in templates and
to interpret datetimes entered in forms.
Django sets the os.environ['TZ']
variable to the time zone you specify in
the TIME_ZONE
setting. Thus, all your views and models will
automatically operate in this time zone. However, Django won’t set the TZ
environment variable under the following conditions:
- If you’re using the manual configuration option as described in
manually configuring settings, or
- If you specify
TIME_ZONE = None
. This will cause Django to fall back to
using the system timezone. However, this is discouraged when USE_TZ
= True
, because it makes conversions between local time and UTC
less reliable.
If Django doesn’t set the TZ
environment variable, it’s up to you
to ensure your processes are running in the correct environment.
注解
Django cannot reliably use alternate time zones in a Windows environment.
If you’re running Django on Windows, TIME_ZONE
must be set to
match the system time zone.
USE_I18N
Default: True
A boolean that specifies whether Django’s translation system should be enabled.
This provides an easy way to turn it off, for performance. If this is set to
False
, Django will make some optimizations so as not to load the
translation machinery.
See also LANGUAGE_CODE
, USE_L10N
and USE_TZ
.
USE_L10N
Default: False
A boolean that specifies if localized formatting of data will be enabled by
default or not. If this is set to True
, e.g. Django will display numbers and
dates using the format of the current locale.
See also LANGUAGE_CODE
, USE_I18N
and USE_TZ
.
USE_TZ
Default: False
A boolean that specifies if datetimes will be timezone-aware by default or not.
If this is set to True
, Django will use timezone-aware datetimes internally.
Otherwise, Django will use naive datetimes in local time.
See also TIME_ZONE
, USE_I18N
and USE_L10N
.
USE_X_FORWARDED_HOST
Default: False
A boolean that specifies whether to use the X-Forwarded-Host header in
preference to the Host header. This should only be enabled if a proxy
which sets this header is in use.
WSGI_APPLICATION
Default: None
The full Python path of the WSGI application object that Django’s built-in
servers (e.g. runserver
) will use. The django-admin.py
startproject
management command will create a simple
wsgi.py
file with an application
callable in it, and point this setting
to that application
.
If not set, the return value of django.core.wsgi.get_wsgi_application()
will be used. In this case, the behavior of runserver
will be
identical to previous Django versions.