django环境处理
settings.py
django的配置放在settings.py文件中
但是这主要应用于开发人员的测试,开发
因为一个项目一般都有几个环境,比如dev环境,beta环境,prod环境,而且每个环境的数据库,redis等等配置都是不同的
如果配置都放于settings中,我们使用不同的环境时就十分麻烦
可以使用下面的处理方式
首先将公共的配置放于settings中,将不同的环境所需的配置分别放在自己的配置文件中如:dev.py,beta.py,prod.py等等
然后在settings中就可以根据不同的环境进行引入对应的配置以覆盖settings中的配置
读取环境使用os模块:
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]