django的配置放在settings.py文件中redis
可是这主要应用于开发人员的测试,开发数据库
由于一个项目通常都有几个环境,好比dev环境,beta环境,prod环境,并且每一个环境的数据库,redis等等配置都是不一样的django
若是配置都放于settings中,咱们使用不一样的环境时就十分麻烦测试
能够使用下面的处理方式spa
首先将公共的配置放于settings中,将不一样的环境所需的配置分别放在本身的配置文件中如:dev.py,beta.py,prod.py等等code
而后在settings中就能够根据不一样的环境进行引入对应的配置以覆盖settings中的配置orm
读取环境使用os模块:blog
print(os.environ.get("ENV", None)) os.environ["ENV"] = "dev" print(os.environ.get("ENV", None)) 输出: None dev
根据读取的环境将环境文件中的配置加到环境变量开发
ENV = os.environ.get('ENV', 'dev') if ENV: import importlib import re # 倒入配置文件包 module = importlib.import_module('project.env.{}'.format(ENV)) for name in dir(module): if not re.match('^__', name): globals()[name] = module.__dict__[name]