Django默认从settings.py文件读取配置信息。但是我们不同的部署环境下可能有不同的配置内容,一个最明显的需求就是日志级别,测试环境可能需要打印debug信息,而生产环境可能只要info甚至是warnning以上就可以了。这就需要根据部署环境进行区分了。以下是我在用的一种区分方式。
假定现在使用三套环境:开发、测试、生产,以指定日志级别为例:
-
配置文件还是settings.py。
-
在项目文件夹建三个文件:settings_dev.py, settings_test.py, settings_prod.py,这几个文件将分别用在开发环境、测试环境、生产环境中。
-
把会有不同的配置项目都抽取到对应的配置文件中。例如:
开发环境settings_dev.py中设置:DEBUG = True
测试环境settings_test.py中设置:DEBUG = True
生产环境settings_prod.py中设置:DEBUG = False
-
settings.py中使用主机名区分部署环境引入对应的配置项目:
```python
import socket
if socket.gethostname() == ‘Kimia-MBP’: import settings_dev as settings_env elif socket.gethostname() == ‘test-env.com’: import settings_test as settings_env else: import settings_production as settings_env
DEBUG = settings_env.DEBUG
# Other configrations… ```
FEATURED TAGS
Django
Python
Java
Design
Android
Linux
scriptogr.am
Mac
OS X
Apache
SSL
HTTPS
Camera
iOS
Git
Svn
Github
C++
Cocos2d-x
Cocos2d
Games
CocosBuilder
Ubuntu
Remote Desktop
Eclipse
adb
Glyph Designer
Font
Huawei
Windows Phone
Windows RT
WinRT
Visual Studio
Windows
IAP
In-app products
Ant
OpenWrt
Router
PandoraBox
Spring Boot
MySQL
Golang