setting.py

          这个文件包含了所有有关这个Django项目的配置信息,均大写:   TEMPLATE_DIRS , DATABASE_NAME , 等. 最重要的设置是 ROOT_URLCONF,它将作为 URLconf 告诉 Django 在这个站点中那些 Python的模块将被用到。

使用 Django 时, 你必须告诉它你使用的是哪个 settings . 要做到这一点,使用环境变量DJANGO_SETTINGS_MODULE.

默认 settings
       如果不需要, Django settings 文件可以不必定义任何 settings. 因为每个设置都有默认值. 这些默认值定义在django/conf/global_settings.py.

使用 settings 的法则:

从 global_settings.py 载入默认设置. 
从指定的 settings 文件载入用户设置, 需要时覆盖掉默认设置.注意一个用户 settings 文件,不必导入 global_settings, 这是多余的.

查看你改变了哪些设置
有一个简单的办法可以查看你修改了哪些设置.命令 python manage.py diffsettings 显示当前 settings 文件与Django 默认设置的不同之处.

在你的代码中使用 settings
通过从模块 django.conf.settings 导入你需要的变量, 你的代码可以访问这个变量. 例子:

from django.conf.settings import DEBUG

if DEBUG:
                  # Do something
注意一定 不要 从 global_settings 或你自己的 settings 模块导入设置变量到你的代码. django.conf.settings 概括了默认设置和站点自定义设置的概念,它提供了一个统一的接口用于用户代码访问, 也降低了用户代码与用户设置的耦合程度.

在运行时修改 settings
         不应该在程序运行时修改 settings. 举例来说, 不要在一个 view 中做这样的事:

from django.conf.settings import DEBUG

DEBUG = True   # Don't do this!
      你只应该在你的 settings 文件中设置 settings, 记住,这是原则.

安全性
由于 settings 文件包含敏感信息,象数据库密码等.你应该非常小心的设置它的访问权限. 举例来说, 你可以只允许你和 WEB 服务器用户阅读该文件.在一个共享主机环境时,这一点格外重要.

可用选项

下面是所有可用选项的列表及它们的默认值(按字母顺序排列).

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

一个字典映射 "app_label.module_name" 字符串到一个函数, 该函数接受一个model对象作为参数并返回它的URL. 这是在一个安装上覆盖 get_absolute_url() 方法的一种方式. 例子:

ABSOLUTE_URL_OVERRIDES =

{
    'blogs.blogs': lambda o: "/blogs/%s/" % o.slug,
    'news.stories': lambda o: "/stories/%s/%s/" % (o.pub_year, o.slug),
        }
           ADMIN_FOR            默认值: () (空的tuple)

用于 admin-site settings 模块, 若当前站点是 admin ,它则是一个由 settings 模块组成的 tuple (类似'foo.bar.baz' 这样的格式).

admin 站点在 models, views,及 template tags 的自动内省的文档中使用该设置.

ADMIN_MEDIA_PREFIX 默认值: '/media/'

The URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a trailing slash.

ADMINS                     默认值: () (空的 tuple)

一个2-元素tuple的 tuple. 列出了有权接收代码错误提示的人. 当 DEBUG=False 时,一个 view 引发了异常, Django 会将详细异常信息用电子邮件的方式发送给这些人. 该tuple的每个成员应该是这种格式: (Full name, e-mail address). 例子:

(('John','john@example.com'), ('Mary','mary@example.com'))
      ALLOWED_INCLUDE_ROOTS        默认值: () (空的 tuple)

一个字符串tuple, 只有以列表中的元素为前缀的模板Django才可以以``{% ssi %}`` 形式访问 . 出于安全考虑, 在不应该访问时,即使是模板的作者也不能访问这些文件.

举例来说, 若 ALLOWED_INCLUDE_ROOTS 是 ('/home/html', '/var/www'), 那么 {% ssi /home/html/foo.txt %} 可以正常工作, 不过 {% ssi /etc/passwd %} 却不能.

APPEND_SLASH 默认值: True

是否给URL添加一个结尾的斜线. 只有安装了 CommonMiddleware 之后,该选项才起作用. (参阅 middleware 文档). 参阅 PREPEND_WWW.

CACHE_BACKEND默认值: 'simple://'

后端使用的 cache . 参阅 cache docs.

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

cache 中间件使用的cache key 前缀. 参阅 cache docs.

DATABASE_ENGINE默认值: 'postgresql'

后端使用的数据库引擎: 'postgresql', 'mysql', 'sqlite3' 或 'ado_mssql' 中的任意一个.

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

数据库所在的主机. 空的字符串意味着 localhost. SQLite 不需要该项. 如果你使用 MySQL 并且该选项的值以一个斜线 ('/') 开始, MySQL 则通过一个 Unix socket 连接到指定的 socket. 比如:

DATABASE_HOST = '/var/run/mysql'
如果你使用 MySQL 并且该选项的值 不是 以斜线开始, 那么该选项的值就是主机的名字.

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

要使用的数据库名字. 对 SQLite, 它必须是一个数据库文件的全路径名字.

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

连接数据库需要的密码. SQLite 不需要该项.

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

连接数据库所需的数据库端口. 空的字符串表示默认端口. SQLite 不需要该项.

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

连接数据库时所需要的用户名. SQLite 不需要该项.

DATE_FORMAT默认值: 'N j, Y' (举例来说 Feb. 4, 2003)

在 Django admin change-list 页对日期字段使用的默认日期格式, 系统中的其它部分也可能使用该格式. 参阅allowed date format strings.

参阅 DATETIME_FORMAT 和 TIME_FORMAT.

DATETIME_FORMAT
默认值: 'N j, Y, P' (举例来说 Feb. 4, 2003, 4 p.m.)

在 Django admin change-list 页对日期时间字段使用的默认日期时间格式, 系统中的其它部分也可能使用该格式. 参阅 allowed date format strings.

参阅 DATE_FORMAT 和 TIME_FORMAT.

DEBUG默认值: False

一个开关调试模式的逻辑值

DEFAULT_CHARSET默认值: 'utf-8'

如果一个 MIME 类型没有人为指定, 对所有 HttpResponse 对象将应用该默认字符集. 使用DEFAULT_CONTENT_TYPE 来构建 Content-Type 头.

DEFAULT_CONTENT_TYPE默认值: 'text/html'

如果一个 MIME 类型没有人为指定, 对所有 HttpResponse 对象将应用该默认 content type. 使用DEFAULT_CHARSET 来构建 Content-Type 头.

DEFAULT_FROM_EMAIL默认值: 'webmaster@localhost'

用于发送(站点自动生成的)管理邮件的默认 e-mail 邮箱.

DISALLOWED_USER_AGENTS默认值: () (空的 tuple)

一个编译的正则表达式对象列表,用于表示一些用户代理字符串.这些用户代理将被禁止访问系统中的任何页面. 使用这个对付页面机器人或网络爬虫.只有安装 CommonMiddleware 后这个选项才有用(参阅 middleware 文档).

EMAIL_HOST默认值: 'localhost'

用来发送 e-mail 的主机. 参阅 EMAIL_PORT.

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

EMAIL_HOST 中定义的 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_admins 或 django.core.mail.mail_managers 发送的邮件的主题前缀.

ENABLE_PSYCO默认值: False

如果允许 Psyco, 将使用Pscyo优化 Python 代码. 需要 Psyco 模块.

IGNORABLE_404_ENDS默认值: ('mail.pl', 'mailform.pl', 'mail.cgi', 'mailform.cgi', 'favicon.ico', '.php')

参阅 IGNORABLE_404_STARTS.

IGNORABLE_404_STARTS默认值: ('/cgi-bin/', '/_vti_bin', '/_vti_inf')

一个字符串 tuple . 以该tuple中元素为开头的 URL 应该被 404 e-mailer 忽略. 参阅SEND_BROKEN_LINK_EMAILS 和 IGNORABLE_404_ENDS.

INSTALLED_APPS默认值: () (空的 tuple)

一个字符串tuple ,内容是本 Django 安装中的所有应用. 每个字符串应该是一个包含Django应用程序的Python包的路径全称, django-admin.py startapp 会自动往其中添加内容.

INTERNAL_IPS默认值: () (空的 tuple)

一个 ip 地址的 tuple(字符串形式), 它:

当 DEBUG 为 True 时,参阅调试务注解
接收 X 头(若 XViewMiddleware 已安装), (参阅 middleware 文档) 
JING_PATH
默认值: '/usr/bin/jing'

"Jing" 执行文件路径全名. Jing 是一个 RELAX NG 校验器, Django 使用它对你的 model 的 XMLField 进行验证. 参阅 http://www.thaiopensource.com/relaxng/jing.html .

LANGUAGE_CODE默认值: 'en-us'

表示默认语言的一个字符串. 必须是标准语言格式. 举例来说, U.S. English 就是 "en-us". 参阅internationalization docs.

LANGUAGES默认值: 一个 tuple (内容为所有可用语言). 目前它的值是:

LANGUAGES = (
    ('bn', _('Bengali')),
    ('cs', _('Czech')),
    ('cy', _('Welsh')),
    ('da', _('Danish')),
    ('de', _('German')),
    ('en', _('English')),
    ('es', _('Spanish')),
    ('fr', _('French')),
    ('gl', _('Galician')),
    ('is', _('Icelandic')),
    ('it', _('Italian')),
    ('no', _('Norwegian')),
    ('pt-br', _('Brazilian')),
    ('ro', _('Romanian')),
    ('ru', _('Russian')),
    ('sk', _('Slovak')),
    ('sr', _('Serbian')),
    ('sv', _('Swedish')),
    ('zh-cn', _('Simplified Chinese')),
)
一个2-元素tuple<格式为 (语言代码, 语言名称)>的 tuple. 该设置用于选择可用语言.参阅internationalization docs 了解细节.

通常这个默认值就足够了.除非你打算减少提供的语言数目,否则没必要修改这个设置.

MANAGERS默认值: ADMINS (不论 ADMINS 是否已经设置)

一个和 ADMINS 同样格式的 tuple , 当 SEND_BROKEN_LINK_EMAILS=True 时, 这些人有权接收死链接通知信息.

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

一个绝对路径, 用于保存媒体文件. 例子: "/home/media/media.lawrence.com/" 参阅 MEDIA_URL.

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

处理媒体服务的URL(媒体文件来自 MEDIA_ROOT). 如: "http://media.lawrence.com"

MIDDLEWARE_CLASSES
        默认值:

("django.contrib.sessions.middleware.SessionMiddleware",
 "django.contrib.auth.middleware.AuthenticationMiddleware",
 "django.middleware.common.CommonMiddleware",
 "django.middleware.doc.XViewMiddleware")
一个django 用到的中间件 class 名称的 tuple. 参阅 middleware 文档.

PREPEND_WWW默认值: False

是否为没有 "www." 前缀的域名添加 "www." 前缀. 当且仅当安装有 CommonMiddleware 后该选项才有效. (参阅middleware 文档).参阅 APPEND_SLASH.

ROOT_URLCONF默认值: Not defined

一个字符串,表示你的根 URLconf 的模块名. 举例来说:"mydjangoapps.urls". 参阅 Django如何处理一个请求.

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

一个密码. 用于为密码哈希算法提供一个种子.将其设置为一个随机字符串 -- 越长越好. django-admin.py startproject 会自动给你创建一个.

SEND_BROKEN_LINK_EMAILS默认值: False

当有人从一个有效Django-powered页面访问另一个Django-powered页面时发现404错误(也就是发现一个死链接)时, 是否发送一封邮件给 MANAGERS. 当且仅当 安装有 CommonMiddleware 时该选项才有效(参阅`middleware 文档`_). 参阅 IGNORABLE_404_STARTS `` 和 IGNORABLE_404_ENDS``.

SERVER_EMAIL默认值: 'root@localhost'

用来发送错误信息的邮件地址, 比如发送给 ADMINS 和 MANAGERS 的邮件.

SESSION_COOKIE_AGE默认值: 1209600 (2周, 以秒计)

session cookies 的生命周期, 以秒计. 参阅 session docs.

SESSION_COOKIE_DOMAIN默认值: None

session cookies 有效的域. 将其值设置为类似 ".lawrence.com" 这样 cookie 就可以跨域生效, 或者使用None 作为一个标准的域 cookie. 参阅 session docs.

SESSION_COOKIE_NAME默认值: 'sessionid'

session 使用的cookie 名字. 参阅 session docs.

SESSION_SAVE_EVERY_REQUEST默认值: False

是否每次请求都保存session. 参阅 session docs.

SITE_ID默认值: Not defined

是一个整数, 表示 django_site 表中的当前站点. 当一个数据包含多个站点数据时,你的程序可以据此 ID 访问特定站点的数据.

TEMPLATE_CONTEXT_PROCESSORS默认值:

("django.core.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n")
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.

TEMPLATE_DEBUG默认值: False

一个布尔值,用来开关模板调试模式.若设置为 True, 如果有任何 TemplateSyntaxError,一个详细的错误报告信息页将被显示给你.这个报告包括有关的模板片断,相应的行会自动高亮.

注意 Django 仅在 DEBUG 为 True 时显示这个信息页面.

参阅 DEBUG.

TEMPLATE_DIRS默认值: () (空的 tuple)

模板源文件目录列表,按搜索顺序. 注意要使用 Unix-风格的前置斜线(即'/'), 即便是在 Windows 上.

参阅 template documentation.

TEMPLATE_LOADERS默认值: ('django.template.loaders.filesystem.load_template_source',)

一个元素为可调用对象(字符串形式的)的 tuple. 这些对象知道如何导入 templates 从各种源中. 参阅 template documentation.

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

输出文本, 作为一个字符串. 模板系统将会在出错 (比如说拼错了) 时使用该变量. 参阅 How invalid variables are handled.

TIME_FORMAT默认值: 'P' (举例来说 4 p.m.)

Django admin change-list 使用的默认时间格式. 有可能系统的其它部分也使用该格式. 参阅 allowed date format strings.

参阅 DATE_FORMAT 和 DATETIME_FORMAT.

TIME_ZONE默认值: 'America/Chicago' (我们可以用 'Asia/Shanghai PRC' )

一个表示当前时区的字符串. 参阅 选择项列表.

Django 据此设置转换所有的日期/时间 -- 并不考虑服务器的时区设置. 举例来说, 一台服务器可以服务多个Django-powered 站点,每个站点使用一个独立的时区设置.

USE_ETAGS默认值: False

一个布尔值.指定是否输出 "Etag" 头. 这个选项可以节省网络带宽,但损失性能. 只有安装 CommonMiddleware 后这个选项才有用(参阅 middleware 文档)

创建你自己的 settings
         你可以为自己的Django 应用程序创建自定义 settings. 只需要你遵守以下惯例:

设置名称全部大写. 如果某项设置是一个序列,优先使用 tuple.这完全是基于性能考虑. 不要为已经存的一个设置重新发明一个名字.

Django setting 常用配置的更多相关文章

  1. $Django setting.py配置 ,GET、POST深入理解,三件套,orm对象关系映射简介

    1 django中app的概念: 大学:----------------- 项目  信息学院 ----------app01  物理学院-----------app02 ****强调***:创建的每一 ...

  2. Django Setting文件配置和简单的创建数据库字段

    Django Settings文件配置 静态文件配置 STATIC_URL = '/static/' # 静态文件配置 STATICFILES_DIRS = [ os.path.join(BASE_D ...

  3. setting 常用配置

    一,保存logging 信息 # 保存log信息的文件名 LOG_LEVEL = "INFO" LOG_STDOUT = True LOG_ENCODING = 'utf-8' # ...

  4. django中的setting最佳配置小结

    Django settings详解 1.基础 DJANGO_SETTING_MODULE环境变量:让settings模块被包含到python可以找到的目录下,开发情况下不需要,我们通常会在当前文件夹运 ...

  5. 初学Django基础01 建立工程,目录结构,常用配置,上下文管理,模板渲染

    django是python的web重量级框架,发展已经有10年多了,对应下面版本 Django 版本 Python 版本 1.8 2.7, 3.2 , 3.3, 3.4, 3.5 1.9, 1.10 ...

  6. Django setting设置 常用设置

    目录 Django配置文件基本设置 前言 setting配置汇总 一.APP路径 二.数据库配置 三.sql语句展示 四.静态文件目录 五.media文件配置 六.数据库中的UserInfo(用户表) ...

  7. 最全的Django入门及常用配置

    Django 常用配置 Django 安装 pipx install django x 为python解释器版本2 or 3 如果你想安装指定版本的django,使用pip install djang ...

  8. Django - 常用配置

    一.logging配置 Django项目常用的logging配置 settings.py LOGGING = { 'version': 1, 'disable_existing_loggers': F ...

  9. Django - 日志工作中常用配置

    工作中常用配置 # 日志配置 BASE_LOG_DIR = os.path.join(BASE_DIR, "log") LOGGING = { 'version': 1, # 保留 ...

随机推荐

  1. 正则表达式匹配IP地址

    '''首先分析ip地址的特征:255.255.255.255,前三位的数字处理基本一致 1位: 0-9              \d2位:10-99         [1-9]\d3位:100-19 ...

  2. hive的shell用法(脑子糊涂了,对着脚本第一行是 #!/bin/sh 疯狂执行hive -f 结果报错)

    hive脚本的执行方式 hive脚本的执行方式大致有三种: hive控制台执行: hive -e "SQL"执行: hive -f SQL文件执行:参考hive用法: usage: ...

  3. go语言信号量的使用例子

    //shared values are passed around on channels // 信号量. /* var sem = make(chan int, MaxOutstanding) fu ...

  4. C# 安全性

    一.标识和Principal static void Main(string[] args) { AppDomain.CurrentDomain.SetPrincipalPolicy(System.S ...

  5. DbVisualizer用JDBC连接SQL Server

    1.安装驱动,解压后得到jar文件 Drivers 4.1 and 4.0 for SQL Serve http://www.microsoft.com/en-us/download/confirma ...

  6. WebGL的shader

    WebGL的shader(着色器)有2种:vertexShader(定点着色器)和 fragmentShader(片段着色器) 顶点着色器:定义点的位置.大小 片元着色器:定义画出来的物体的材质(颜色 ...

  7. HTTP header 介绍 转载

    这篇文章为大家介绍了HTTP头部信息,中英文对比分析,还是比较全面的,若大家在使用过程中遇到不了解的,可以适当参考下 HTTP 头部解释 1. Accept:告诉WEB服务器自己接受什么介质类型,*/ ...

  8. Notepad++编辑.sh文件

    使用记事本创建创建test.txt文件,修改后缀名为sh后,再文件里写以下内容: #!/bin/bash echo "hello world" 这样的文件再linux里是无法执行的 ...

  9. python 装饰器应用

    1 注册回调函数 下面这个示例展示了通过URL的路由来调用相关注册的函数示例: class MyApp(): def __init__(self): self.func_map = {} def re ...

  10. Logback 日志策略配置

    [参考文章]:官方文档:Logback configuration [参考文章]:logback的使用和logback.xml详解 [参考文章]:Logback源码赏析-日志按时间滚动(切割) 1. ...