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]

 

posted @ 2019-06-27 14:42  YaoSir66  阅读(223)  评论(0编辑  收藏  举报