Django的settings文件包含Django应用的所有配置项。
因为配置文件是Python模块,所以要注意以下几项:
-
不能有Python语法错误
-
可以用Python语法实现动态配置,例如:
MY_SETTING = [str(i) for i in range(30)]
-
可以从其他配置文件中引入变量
指定配置文件
使用Django时要通知Django当前使用的是哪个配置文件。可以改变环境变量 DJANGO_SETTINGS_MODULE
实现这一点。
例子(Windows shell):
set DJANGO_SETTINGS_MODULE=mysite.settings
django-admin runserver
On the server (mod_wsgi
)
在服务器环境下,要通知WSGI应用当前使用的是哪个配置文件,用到 os.environ
:
默认配置
在无需配置的情况下,Django配置文件没必要定义任何配置项。因为每个配置项都有一个明确的默认值。默认值都保存在模块 django/conf/global_settings.py
中.
查看你已经更改了哪个配置项
查看你修改了哪几个配置项很容易, 在命令行输入 python manage.py diffsettings
就会显示当前配置与默认配置中的不同。
在Python代码中使用settings
在具体的Django应用中, 通过引入 django.conf.settings
使用配置
运行时更改设置
不建议在运行时更改设置
安全
由于配置文件包含敏感信息, 比如数据库密码, 所以应该限制对配置文件的访问. 比如更改文件权限, 从而只能令你和你的WEB服务器能读取配置文件. 这在共享主机的环境中非常重要
可用的配置项
1 BASE_DIR :项目所在绝对路径
2 DEBUG : 调试模式
开发过程中,推荐使用 True
上线运行时,必须改为 False
3 SECRET_KEY 密匙 如果为空,django不能启动,影响django安全性
4 ALLOWED_HOSTS
如果不设置,只有本机能访问
通常推荐设置为 '*'
5 INSTALLED_APPS
指定安装的应用
6 MIDDLEWARE : 指定中间件
7 ROOT_URLCONF : 指定项目的基础路由配置文件
8 TEMPLATES : 指定模板信息
9 WSGI_APPLICATION:wsgi的协议对象
10 DATABASES : 指定数据库信息
11 AUTH_PASSWORD_VALIDATORS:密码验证规则
12 LANGUAGE_CODE : 指定语言,可修改为 zh-Hans
13 TIME_ZONE : 指定时区,可修改为 Asia/Shanghai
14 STATIC_URL:静态路径
15 USE_I18N:一个布尔值,指定是否应启用Django的翻译系统。这提供了一种简单的方法来关闭它,以提高性能。如果设置为 False
,Django将进行一些优化,以便不加载翻译机制.
16 USE_L10N:一个布尔值,指定默认情况下是否启用数据的本地化格式。如果设置为True
,例如Django将使用当前语言环境的格式显示数字和日期.
17 USE_TZ:本地时间和格林威治时间的切换.