Python项目如何区分配置开发环境/生产环境settings

基于django的灵感,我们可以首先将项目配置文件夹配置成下面这样:

conf/
	__init__.py
	base.py
	settings_dev.py
	settings_prod.py

然后我们需要在__init__.py文件中根据当前所属环境来引用对应的settings文件:

import importlib

class Settings(object):
	"""The implementation class of the settings."""
	def __init__(self, mode=None):
		if mode == 'prod':
			settings_module = importlib.import_module('conf.settings_prod')
		else:
			settings_module = importlib.import_module('conf.settings_dev')
		
		# 将settings文件里面的键值对注入到setting对象里面去
		for setting in dir(settings_module):
      		if setting.isupper():
      			# 只将大写的属性也就是我们在文件中手动定义的属性注入进来。
        		setattr(self, setting, getattr(settings_module, setting))

settings = Settings()

这样的话,我们可以在程序的入口定义一个参数传入执行的环境,然后可以在程序中像这样初始化settings:

settings.__init__(args.mode)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值