问题描述
当应用程序的运行时,需要指定不同的配置信息或参数,以来控制应用程序的运行。
该笔记将记录:在 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 # 在代码中引用配置的变量