「Django」- 配置管理,设置(Setting)

问题描述

当应用程序的运行时,需要指定不同的配置信息或参数,以来控制应用程序的运行。

该笔记将记录:在 Django 中,如何管理配置文件;

解决方案

在 Django 中,通过 Django settings 来完成应用程序的应用控制:

参考官方文档,以获取通过配置文件来控制系统运行的方法:
1)2.2 / Settings
2)4.0 / Settings | Django documentation | Django

补充说明

除此之外,也能够通过其他模块来进行配置处理,例如 ConfigParser 模块:

# https://stackoverflow.com/questions/12750778/booleans-in-configparser-always-return-true
print config.getboolean('main', 'some_boolean') 

但非 Django 内置的配置方法不是我们关注的重点,我们更倾向于使用框架内置的工具和方法。

配置文件管理方法

python – Is this approach to Django multiple settings files reasonable? – Stack Overflow
Django Tips #20 Working With Multiple Settings Modules

如上文档,提到多种配置文件的管理方法。如下是我们从其中借鉴方法:

settings
├── __init__.py
├── defaults.py
├── dev.py
└── production.py

// ---------------------------------------------------------------------------- // settings/__init__.py

from dev import *

// ---------------------------------------------------------------------------- // settings/dev.py

# Load defaults in order to then add/override with dev-only settings
from defaults import *

DEBUG = True
# ... etc.

// ---------------------------------------------------------------------------- // settings/production.py

# Load defaults in order to then add/override with production-only settings
from defaults import *

DEBUG = False
# ... etc.

在命令行中,指定特定配置文件

# python manage.py runserver --settings=myapp.settings.development

在代码中,引用配置文件的变量

How do I reference a Django settings variable in my models.py? – Stack Overflow

from django.conf import settings

foo = settings.VARIABLE                                                         # 在代码中引用配置的变量