django环境处理

settings.py

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]
相关文章
相关标签/搜索