zoukankan      html  css  js  c++  java
  • Django---SETTINGS配置(***)

    Django---SETTINGS核心配置项

    django核心配置项


    Django的默认配置文件中,包含上百条配置项目,其中很多是我们‘一辈子’都不碰到或者不需要单独配置的,这些项目在需要的时候再去查手册。

    强调:配置的默认值不是在settings.py文件中!不要以为settings.py中的配置值就是默认值,参考前文。settings.py是使用django-admin startproject xxx命令时,额外给我们创建的。

    下面介绍的是61个相对比较常用和重要的配置项,按字母顺序排序,但是最后部分是cache、auth、message、session、static等的配置。

    1. ADMINS
    2. ALLOWED_HOSTS
    3. APPEND_SLASH
    4. DATABASES
    5. DATE_FORMAT
    6. DATE_INPUT_FORMATS
    7. DATETIME_FORMAT
    8. DATETIME_INPUT_FORMATS
    9. DEBUG
    10. DEFAULT_CHARSET
    11. DEFAULT_CONTENT_TYPE
    12. DEFAULT_FROM_EMAIL
    13. DISALLOWED_USER_AGENTS
    14. EMAIL_BACKEND
    15. EMAIL_FILE_PATH
    16. EMAIL_HOST
    17. EMAIL_HOST_PASSWORD
    18. EMAIL_HOST_USER
    19. EMAIL_PORT
    20. EMAIL_SUBJECT_PREFIX
    21. EMAIL_USE_TLS
    22. EMAIL_USE_SSL
    23. EMAIL_SSL_CERTFILE
    24. EMAIL_SSL_KEYFILE
    25. EMAIL_TIMEOUT
    26. FILE_CHARSET
    27. INSTALLED_APPS
    28. LANGUAGE_CODE
    29. LANGUAGES
    30. LOCALE_PATHS
    31. LOGGING
    32. LOGGING_CONFIG
    33. MEDIA_ROOT
    34. MEDIA_URL
    35. MIDDLEWARE
    36. ROOT_URLCONF
    37. SECRET_KEY
    38. TEMPLATES
    39. TIME_ZONE
    40. USE_I18N
    41. USE_L10N
    42. USE_TZ
    43. WSGI_APPLICATION
    44. CACHES
    45. AUTHENTICATION_BACKENDS
    46. AUTH_USER_MODEL
    47. LOGIN_REDIRECT_URL
    48. LOGIN_URL
    49. LOGOUT_REDIRECT_URL
    50. PASSWORD_RESET_TIMEOUT_DAYS
    51. PASSWORD_HASHERS
    52. MESSAGE_LEVEL
    53. MESSAGE_STORAGE
    54. SESSION_COOKIE_AGE
    55. SESSION_COOKIE_NAME
    56. SESSION_ENGINE
    57. SESSION_EXPIRE_AT_BROWSER_CLOSE
    58. SITE_ID
    59. STATIC_ROOT
    60. STATIC_URL
    61. STATICFILES_DIRS

    1. ADMINS

    默认值:[](空列表)

    所有获得代码错误通知的人的邮件地址列表。当DEBUG=False,并且一个视图引发了异常时,Django将会给这个列表里的人发一封含有完整异常信息的电子邮件。列表中的每个项目都应该是(全名,电子邮件地址)的元组。例如:

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

    2. ALLOWED_HOSTS

    默认值:[](空列表)

    这是新手比较困惑的一个配置项。该配置项列表中包含的是Django站点可以为之提供服务的主机/域名。 也就是哪些主机或IP能够访问Django服务器!列表里的所有元素是共同存在的关系,不纯在冲突、优先级和排斥的关系。

    列表中的值可以是'localhost'、'www.example.com'或者'.example.com'形式的域名。

    也可以是IP地址,比如:'137.2.4.1'、'192.168.1.1'、'0.0.0.0'、'127.0.0.1'

    还可以是通配符'*',表示所有外部主机都可以访问Django。但这种情况具有安全风险,在线上环境不要使用。

    对于'0.0.0.0',表示局域网内的主机都可以访问Django。

    当DEBUG为True和'ALLOWED_HOSTS为'空时,默认相当于配置:['localhost', '127.0.0.1', '[:: 1]']。

    3. APPEND_SLASH

    默认值:True

    当设定为True时,如果请求的URL没有匹配到URLconf里面的任何一条URL路由设置,并且没有以'/'(斜杠)结束,该请求将重定向到以请求URL加'/'的URL地址。需要注意的是重定向有可能导致POST提交的数据丢失。

    通俗的解释就是,如果你在写url时忘记了在最后添加一个斜杠,Django会默认帮你加上!请尽量保持默认值!

    'APPEND_SLASH'设置只有在安装了'CommonMiddleware'中间件时才会启用。

    如:默认是(127.0.0.1:8000/路径),设置为true(127.0.0.1:8000路径)

    4. DATABASES

    默认值: {} (空的字典)

    该配置项包含Django项目使用的所有数据库的设置。这是一个嵌套字典。

    DATABASES设置必须配置一个default数据库,以及指定任意数量的其它数据库(可以没有)。

    最简单的配置方式是使用SQLite数据库,Python和Django内置对SQLite数据库的支持,无需任何额外的安装和插件,如下所示:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': 'mydatabase',
            # 或者'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        }
    }
    

    由于SQLite数据库就在Django项目本地,通常还是在Django项目根目录下,以一个文件的形式存在,没有用户名、密码、IP、port的问题,所以配置比较简单。

    当连接其他数据库后端,比如MySQL、Oracle 或PostgreSQL,必须提供更多的连接参数。下面的例子用于PostgreSQL:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': 'mydatabase',
            'USER': 'mydatabaseuser',
            'PASSWORD': 'mypassword',
            'HOST': '127.0.0.1',
            'PORT': '5432',
        }
    }
    

    下面是DATABASES的内部配置项:

    • ATOMIC_REQUESTS

    默认值:False

    原子性事务请求。

    • AUTOCOMMIT

    默认值:True

    自动提交。

    • ENGINE

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

    最重要的配置项!指定使用的数据库后端。 内建的数据库后端名称有:

    'django.db.backends.postgresql'
    'django.db.backends.mysql'
    'django.db.backends.sqlite3'
    'django.db.backends.oracle'
    
    • HOST

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

    数据库所在的主机。设置的值可以是主机名、IP地址、和socket路径。空字符串表示localhost。SQLite不需要配置这个选项。

    如果其值以斜杠('/')开头并且你使用的是MySQL,MySQL将通过Unix socket连接。 像这样:

    "HOST": '/var/run/mysql'
    
    • NAME

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

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

    但是对于MySQL等数据库,NAME指的是数据库系统中的具体某个database,Django没有能力自动在MySQL中创建数据库,它只能通过模型创建数据表。所以需要你通过各种数据客户端,在MySQL中提前创建好Django项目需要的数据库,使用命令'CREATE DATABASE mysite CHARACTER SET utf8;',mysite是你的数据库名,务必同时指定字符编码方式为utf8!

    • CONN_MAX_AGE

    默认:0

    数据库连接的存活时间,以秒为单位。0表示在每个请求结束时关闭数据库连接,None表示无限的持久连接。

    • OPTIONS

    Default: {} (默认为空的字典)

    连接数据库时使用的额外参数。可用的参数与你的数据库后端有关。

    • PASSWORD

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

    连接数据库时使用的密码。SQLite不需要这个选项。

    • PORT

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

    连接数据库时使用的端口。空字符串表示默认的端口。SQLite不需要这个选项。 MySQL一般是3306。

    • TIME_ZONE

    默认值:None

    数据库中使用的时区。

    • USER

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

    连接数据库时使用的用户名。SQLite不需要这个选项。

    • TEST

    Default: {} (默认为空的字典)

    测试数据库用的配置。

    以下是测试数据库配置的示例:

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

    5. DATE_FORMAT

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

    系统中日期字段的默认显示格式。

    6. 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'
    ]
    

    日期字段中输入数据时将能够被接受的格式列表。格式将按顺序尝试,使用第一个有效的格式。

    7. DATETIME_FORMAT

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

    系统中显示datetime字段的默认格式。

    8. DATETIME_INPUT_FORMATS

    默认值:

    [
        '%Y-%m-%d %H:%M:%S',     # '2006-10-25 14:30:59'
        '%Y-%m-%d %H:%M:%S.%f',  # '2006-10-25 14:30:59.000200'
        '%Y-%m-%d %H:%M',        # '2006-10-25 14:30'
        '%Y-%m-%d',              # '2006-10-25'
        '%m/%d/%Y %H:%M:%S',     # '10/25/2006 14:30:59'
        '%m/%d/%Y %H:%M:%S.%f',  # '10/25/2006 14:30:59.000200'
        '%m/%d/%Y %H:%M',        # '10/25/2006 14:30'
        '%m/%d/%Y',              # '10/25/2006'
        '%m/%d/%y %H:%M:%S',     # '10/25/06 14:30:59'
        '%m/%d/%y %H:%M:%S.%f',  # '10/25/06 14:30:59.000200'
        '%m/%d/%y %H:%M',        # '10/25/06 14:30'
        '%m/%d/%y',              # '10/25/06'
    ]
    

    在datetime字段中输入数据时将被接受的格式列表。格式将按顺序尝试,使用第一个有效的格式。

    9. DEBUG

    默认值:False

    打开/关闭调试模式。最重要的设置之一!默认值是False,你没有看错!只是在settings.py中又帮我们设置为True了,打开了调试模式,方便开发者和测试者的!线上部署网站的时候务必设置为False。

    调试模式下可以显示错误页面的细节。若你的应用产生了一个异常,Django会显示追溯细节,包括许多环境变量的元数据, 比如所有当前定义的Django设置。

    作为安全考虑,调试信息中不会列出包含下列关键字的配置项的内容,例如SECRET_KEY:

    'API'
    'KEY'
    'PASS'
    'SECRET'
    'SIGNATURE'
    'TOKEN'
    

    注意,这里使用的是包含匹配,也就是说只要出现这些子字符串的配置项将匹配上。例如'PASS'能够匹配 PASSWORD, 'TOKEN'也将匹配TOKENIZED等等.

    最后再次强调,如果DEBUG为False,你还需要正确设置'ALLOWED_HOSTS'以及静态文件。错误设置将导致对所有的请求返回“Bad Request (400)”。

    10. DEFAULT_CHARSET

    默认值:'utf-8'

    HttpResponse响应对象的默认字符集。

    11. DEFAULT_CONTENT_TYPE

    默认值:'text/html'

    HttpResponse对象的默认内容类型。

    12. DEFAULT_FROM_EMAIL

    默认值:'webmaster@localhost'

    默认的电子邮件发送地址,即发送方。

    13. DISALLOWED_USER_AGENTS

    默认值:[](空列表)

    这是一个编译好了的正则表达式对象的列表。代表哪些不允许访问任何页面的User-Agent字符串。也就是说如果一个请求的User-Agent属性,被这个配置项中的任何一个正则表达式匹配到了,那么这个请求将被阻止。常用于对付机器人和网络蜘蛛。需要CommonMiddleware中间件支持。

    14. EMAIL_BACKEND

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

    用于发送邮件的后端。

    15. EMAIL_FILE_PATH

    默认:未指定

    邮件后端保存输出文件时使用的目录。

    16. EMAIL_HOST

    默认:'localhost'

    发送邮件使用的主机。

    17. EMAIL_HOST_PASSWORD

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

    'EMAIL_HOST'的SMTP服务器使用的密码。

    18. EMAIL_HOST_USER

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

    'EMAIL_HOST'的SMTP服务器使用的用户名。

    19. EMAIL_PORT

    默认:25

    'EMAIL_HOST'的SMTP服务器使用的端口。

    20. EMAIL_SUBJECT_PREFIX

    默认值:'[Django] '

    使用'django.core.mail.mail_admins'或'django.core.mail.mail_managers'发送的电子邮件的主题行前缀。

    21. EMAIL_USE_TLS

    默认值:False

    是否使用TLS(安全)与SMTP服务器连接。用于显式TLS连接,通常在端口587上。

    22. EMAIL_USE_SSL

    默认值:False

    在与SMTP服务器通信时是否使用隐式TLS(安全)连接。在大多数电子邮件文档中,此类型的TLS连接称为SSL。 它通常在端口465上使用。

    注意:腾讯家的qq邮箱服务,需要使用ssl安全链接在465端口上!

    请注意,'EMAIL_USE_TLS'与'EMAIL_USE_SSL'是互斥的,因此只能将其中一个设置设置为True。

    23. EMAIL_SSL_CERTFILE

    默认值:None

    如果'EMAIL_USE_SSL'或'EMAIL_USE_TLS'为True,则可以选择指定要用于SSL连接的PEM格式的证书链文件的路径。

    24. EMAIL_SSL_KEYFILE

    默认值:None

    如果'EMAIL_USE_SSL'或'EMAIL_USE_TLS为True',可以选择指定要用于SSL连接的PEM格式的私钥文件的路径。

    25. EMAIL_TIMEOUT

    默认值:None

    邮件发送超时时间。

    26. FILE_CHARSET

    默认值:'utf-8'

    从磁盘读取文件时使用的字符编码。包括模板文件和初始SQL数据文件。

    没有特别需求,请不要修改它。

    27. INSTALLED_APPS

    默认值:[](空列表)

    Django核心配置项!

    当前Django项目中启用的app列表。 每个元素应该是一个Python的点分路径,字符串格式:

    项目内每个启用的app,包括Django内置的contrib都必须在这个列表里注册,否则创建数据表、调用功能等等都无法进行。

    一个典型的配置如下:

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'app1',
        'app2',
    ]
    

    建议在最后一个元素后面添加个逗号。

    28. LANGUAGE_CODE

    默认值:'en-us'

    当前项目所使用的语言。默认为英语。汉语是'zh-hans',千万不要写成别的,比如‘chinese’之类!

    'USE_I18N'必须设置为True才能使'LANGUAGE_CODE'生效。

    29. LANGUAGES

    默认值:所有可用语言的列表。

    该配置项表示可用的语言种类,(语言代码,语言名称)两元组列表,例如:('ja', 'Japanese')。

    一般来说,默认值足够了。如果自定义LANGUAGES设置,可以使用'ugettext_lazy()'函数将语言名称标记为翻译字符串。

    下面是一个示例设置文件:

    from django.utils.translation import ugettext_lazy as _
    
    LANGUAGES = [
        ('de', _('German')),
        ('en', _('English')),
    ]
    

    30. LOCALE_PATHS

    默认值:[](空列表)

    Django查找翻译文件的目录列表,例如:

    LOCALE_PATHS = [
        '/home/www/project/common_files/locale',
        '/var/local/translations/locale',
    ]
    

    Django将在这些路径中查找包含实际翻译文件的目录。

    31. LOGGING

    默认值:日志配置字典。

    日志配置信息。

    32. LOGGING_CONFIG

    默认值:'logging.config.dictConfig'

    用于在Django项目中配置日志记录的可调用项的路径。

    33. MEDIA_ROOT

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

    用户上传的文件,所在目录的,文件系统绝对路径。也就是指示上传文件放到哪里。

    例如: "/var/www/example.com/media/"

    警告:MEDIA_ROOT和STATIC_ROOT必须设置为不同的值。

    34. MEDIA_URL

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

    'MEDIA_URL'指向'MEDIA_ROOT'所指定的media文件,用来管理保存的文件。该URL设置为非空值时,必须以斜杠“/”结束。

    若你打算在模版中使用'{{ MEDIA_URL }}',必须在TEMPLATES的'context_processors'设置中添加'django.template.context_processors.media'。

    警告:'MEDIA_URL'和'STATIC_URL'必须设置为不同的值。

    35. MIDDLEWARE

    默认值:None

    Django1.10中的新功能。要使用的中间件列表。Django-admin命令创建的新项目中,settings.py文件里默认会为MIDDLEWARE配置项添加一系列Django内置的中间件,我们保持它不变就好了。

    36. ROOT_URLCONF

    默认:未指定

    一个字符串,表示根URLconf的完整Python导入路径。例如:"mydjangoapps.urls"。

    每个请求都可以覆盖它,通过设置HTTP请求HttpRequest对象的urlconf属性。但不是闲的,请不要特别设置,使用默认值就好。

    37. SECRET_KEY

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

    当前Django项目实例的密钥。用于提供cryptographic签名,是一个唯一的并且不可预测的值。比如:

    SECRET_KEY = '+$*n1_pkko%zaz3!lm8lg208@uj^qy3mcsuy+*ov%ikpvd5$rf'
    

    通过'django-admin startproject xxx'命令创建的项目,会在settings.py中添加随机生成的'SECRET_KEY'。

    如果未设置'SECRET_KEY',Django将无法启动。

    警告:不要透露该配置项的真实值!

    38. TEMPLATES

    默认值:[](空列表)

    Django模板系统相关的配置。列表中每一项都是一个字典类型数据(类似DATABASE配置),可以配置模板不同的功能。

    下面是一个例子:

    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'),你可以使用第三方提供的模板后端。

    NAME

    默认值:见下面

    此特定模板引擎的别名,一个标识符,用于在某些情况下指定选择引擎进行渲染。别名在所有已配置的模板引擎中必须是唯一的。

    当没有提供时,如果后端是'mypackage.whatever.Backend',则其默认名称为'whatever'。

    DIRS

    默认值:[](空列表)

    搜索模版的路径列表。搜索引擎会按照列表的排列顺序查找template资源文件。短路算法,找到即退出,不再往下找。

    APP_DIRS

    默认值:False

    Templates搜索引擎是否应该在已安装的app中查找Template源文件。建议保持打开,即设置为True!

    由'django-admin startproject xxx'命令创建的Django项目,其settings.py文件中'APP_DIRS'已经设置为True了。

    OPTIONS

    默认值:{}

    传递给模板后端的额外参数。 可用参数因模板后端而异。

    39. TIME_ZONE

    默认:'America/Chicago'

    时区设置。

    注意,这个配置项的值不一定要和服务器的时区一致。例如,一个服务器可上可能有多个Django站点,每个站点都有一个单独的时区设置。

    如果要设为中国时间,也就是北京时间,请赋值:'TIME_ZONE = 'Asia/Shanghai''。注意是上海,不是北京,囧!

    当'USE_TZ'为False时,它将成为Django存储所有日期和时间数据时,使用的时区。 当'USE_TZ'为True 时,它是Django显示模板中的时间,解释表单中的日期,使用的时区。所以,通常我们都将USE_TZ同时设置为False!

    注:在Windows 环境中,Django不能可靠地交替其它时区。如果你在Windows上运行Django,'TIME_ZONE'必须设置为与系统时区一致。

    40. USE_I18N

    默认值:True

    这是一个布尔值,指定Django的翻译系统是否开启。如果设置为False,Django会做一些优化,不去加载翻译机制。

    由'django-admin startproject xxx'命令创建的Django项目,其settings.py文件中'USE_I18N'已经设置为True了。

    41. USE_L10N

    默认值:False

    一个布尔值,用于决定是否开启数据本地化。如果此设置为True,例如Django将使用当前语言环境的格式显示数字和日期。

    由'django-admin startproject xxx'命令创建的Django项目,其settings.py文件中'USE_L10N'已经设置为True了。

    42. USE_TZ

    默认值:False

    一个布尔值,用来指定是否使用指定的时区(TIME_ZONE)的时间。若为True, 则Django会使用内建的时区的时间;否则, Django将会使用本地的时间。

    由'django-admin startproject xxx'命令创建的Django项目,其settings.py文件中'USE_TZ'已经设置为True了。

    如果我们将TIME_ZONE设置成了Asia/Shanghai, 那么务必同时将USE_TZ改成False!

    43. WSGI_APPLICATION

    默认值:None

    Django的内置服务器(例如runserver)将使用的WSGI应用程序对象的完整Python路径。

    Django使用WSGI协议与外部进行通信。

    由'django-admin startproject xxx'命令创建的Django项目,将自动创建一个简单的'wsgi.py'模块,里面有一个可调用的application变量,WSGI_APPLICATION配置项的值就指向这个application变量。

    下面是'wsgi.py'的源码:

    """
    WSGI config for mysite project.
    It exposes the WSGI callable as a module-level variable named ``application``.
    For more information on this file, see https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/
    """
    
    import os
    
    from django.core.wsgi import get_wsgi_application
    
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
    
    application = get_wsgi_application()
    

    以下是一些子系统或工具框架的相关配置


    44. CACHES

    默认值:

    {
        'default': {
            'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
        }
    }
    

    一个嵌套字典,包含所有缓存系统要使用的设置。

    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'
    

    通过将BACKEND设置为缓存后端类的完全限定路径(例如mypackage.backends.whatever.WhateverCache),可以使用第三方的缓存后端。)。

    LOCATION

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

    要使用的缓存的位置,可能是文件系统缓存的目录,内存缓存服务器的主机和端口,或者只是本地内存缓存的标识名称。 例如:

    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
            'LOCATION': '/var/tmp/django_cache',
        }
    }
    

    OPTIONS:

    默认值:None

    传递到缓存后端的额外参数。可用参数因缓存后端而异。

    TIMEOUT:

    默认值:300

    高速缓存的有效时间。 如果此设置的值为None,则缓存将永远不会过期。

    VERSION

    默认值:1

    Django服务器生成的缓存键的默认版本号。

    45. AUTHENTICATION_BACKENDS

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

    在尝试验证用户时使用的认证后端的列表。默认使用Django自带的Auth框架。

    46. AUTH_USER_MODEL

    默认值:'auth.User'

    默认使用的User模型。

    47. LOGIN_REDIRECT_URL

    默认:'/accounts/profile/'

    登录之后,如果'contrib.auth.login'视图找不到next参数,请求将被重定向到该URL。

    48. LOGIN_URL

    默认:'/accounts/login/'

    登录页面的URL。

    49. LOGOUT_REDIRECT_URL

    默认值:None

    使用LogoutView视图退出登录后,请求被重定向的URL。如果设置为None,则不执行重定向。

    50. PASSWORD_RESET_TIMEOUT_DAYS

    默认:3

    重置密码的链接,的有效期,的天数。(逗号分开,是不是更好理解一点?) 用于'django.contrib.auth'的密码重置功能。

    51. PASSWORD_HASHERS

    密码哈希使用的算法。

    默认:

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

    在Django1.10时,以下hashers从默认值中删除:

    'django.contrib.auth.hashers.SHA1PasswordHasher'
    'django.contrib.auth.hashers.MD5PasswordHasher'
    'django.contrib.auth.hashers.UnsaltedSHA1PasswordHasher'
    'django.contrib.auth.hashers.UnsaltedMD5PasswordHasher'
    'django.contrib.auth.hashers.CryptPasswordHasher'
    

    52. MESSAGE_LEVEL

    默认值:messages.INFO

    设置Django内置的消息框架-message,将记录的最低消息级别。

    53. 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'
    

    默认:1209600(2个星期)

    会话Cookie的过期时间,以秒为单位。

    默认值:'sessionid'

    要用于会话的Cookie的名称。 名字随意,只要与应用程序中的其他cookie名称不同。

    56. SESSION_ENGINE

    默认值:'django.contrib.sessions.backends.db'

    会话使用的后端,也就是会话数据的保存未知。 内置支持的引擎有:

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

    57. SESSION_EXPIRE_AT_BROWSER_CLOSE

    默认值:False

    是否在用户关闭浏览器时过期会话。

    58. SITE_ID

    默认:未指定

    当前站点在'django_site'数据库表中的ID,一个整数,从1开始计数。

    很多人都不知道Django是支持多站点同时运行的。

    通常我们都只有一个站点,所以不关心这个选项。如果你同时运行了多个站点,那么每个app就得知道自己是为那个站点或哪些站点服务的,这就需要SITE_ID参数了。

    59. STATIC_ROOT

    默认值:None

    在DEBUG设置为False时,也就是线上环境时,Django项目里的静态文件(jscssplugins)会无法使用。这是,需要运行'python manage.py collectstatic',将静态文件统一收集到一个目录下。STATIC_ROOT配置的就是该目录的绝对路径。

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

    这个目录,刚开始应该是一个空目录。

    60. STATIC_URL

    默认值:None

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

    示例:"/static/"或"http://static.example.com/"

    该URL设置为非空值时,必须以斜杠“/”结束。

    61. STATICFILES_DIRS

    默认值:[](空列表)

    定义额外的静态文件搜索地址。

    例如:

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

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


    如果你实在分不清楚'MEDIA_ROOT、MEDIA_URL、STATIC_ROOT、STATIC_URL和STATICFILES_DIRS'的区别,下面是一个参考版的设置:

    # Static files (CSS, JavaScript, Images)
    # https://docs.djangoproject.com/en/1.11/howto/static-files/
    
    STATIC_URL = '/static/'
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, "static"),
    ]
    STATIC_ROOT = os.path.join(BASE_DIR, "all_static_files")
    
    
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace("\", "/")
    MEDIA_URL = '/media/'
    
  • 相关阅读:
    LeetCode Power of Three
    LeetCode Nim Game
    LeetCode,ugly number
    LeetCode Binary Tree Paths
    LeetCode Word Pattern
    LeetCode Bulls and Cows
    LeeCode Odd Even Linked List
    LeetCode twoSum
    549. Binary Tree Longest Consecutive Sequence II
    113. Path Sum II
  • 原文地址:https://www.cnblogs.com/dengz/p/11490391.html
Copyright © 2011-2022 走看看