【CMDB】高级配置
2024-08-21 20:00:01
思路:
一份默认配置,一份用户自定义配置,将两者结合,自定义优先级大于默认配置
目录结构
'''
用户自定义的配置文件,settings.py
'''
USER = 'xiaoming'
PASSWORD = ''
用户自定义配置
'''
系统默认配置文件,global_settings.py
''' TEL = ''
系统配置文件
'''用户自定义配置和系统默认配置文件的统一 config.py'''
import os
import importlib
from . import global_settings class Settings(object):
def __init__(self):
# 默认配置文件
for name in dir(global_settings):
if name.isupper():
value = getattr(global_settings,name)
setattr(self,name,value) # 自定义配置文件
settings_module = os.environ.get('USER_SETTINGS')
if not settings_module:
return
# 导入模块
m = importlib.import_module(settings_module)
for name in dir(m):
if name.isupper():
value = getattr(m,name)
setattr(self,name,value) settings = Settings()
'''
start.py
使用变量
'''
import os
os.environ['USER_SETTINGS'] = 'config.settings' if __name__ == '__main__':
from lib.conf.config import settings
print(settings.USER)
最新文章
- Java Web之会话管理一: 使用Cookie进行会话管理
- iOS-多线程 ,整理集锦,多种线程的创建
- Android 强制竖屏
- win7画板橡皮擦改变大小
- Servlet 编程 请求的转发
- Sprint第二个冲刺(第七天)
- PHP 安装 eaccelerator
- CSS超出2行省略号
- 【LeetCode 215】Kth Largest Element in an Array
- Microsoft Dynamics CRM 数据库连接存储位置在哪里 是在注册表里
- 编程语言的发展趋势by Anders Hejlsberg
- UVA 6199 不定根最小树形图
- logstash 处理各种时间格式
- 关于Oracle连接超时的问题
- [Usaco2007 Open]Fliptile 翻格子游戏
- Dynamics CRM 2015Online Update1 new feature之表单页Tabs切换
- Java数组的应用:案例:杨辉三角,三维数组,字符串数组
- 【RL-TCPnet网络教程】第15章 RL-TCPnet之创建多个TCP连接
- python练习一—文本转化渲染为html
- 进入正在运行的 docker 容器(docker container)
热门文章
- 小数末尾是0的,不显示0,有值才显示 StringFormat
- 二进制和ASCII文件的区别
- SVN + Jenkins 构建自动部署
- [LeetCode] 341. Flatten Nested List Iterator 压平嵌套链表迭代器
- 【VS开发】MFC多显示器适配显示设置
- 手贱重置了mysql密码,导致登陆不进去的解决办法
- java web中的相对路径和绝对路径
- python基础篇(六)
- 第2/7Beta冲刺
- flask报错 KeyError: <;flask.cli.ScriptInfo object at 0x000001638AC164E0>;