yaya

今天也要加油鸭!!!

cmdb 配置

cmdb客户端文件夹创建

客户端:client:
-bin:启动文件
-src:源文件(核心代码)
-conf:配置文件
-lib:全局的一些方法 和配置
-test:测试文件

😁模仿django一个暴露给用户的settings文件,一个全局配置文件global_settings,然后都可以实现通过settings这个对象点出属性方法也就是自定义配置或者全局配置,所以要创两个配置文件😍



👍实现第一个功能:集成自定制配置文件和全局配置文件👌
在start文件中导入lib文件夹中config文件夹中的config中settings对象,然后Setings这个类要进行实例化,实例化的时候就会触发__init__方法,这个函数里面将custom_settings和global_settings里所有的配置key,
value值都设置到settings对象里面,然后就可以对象点的方式获取到值❗❗❗💥




custom_settigns.py (暴露给用户的配置文件)
USER = 'root'

 

global_settings.py        (全局的配置文件)

EMAIL_USER = 'test'

然后可以先在测试文件test中进行测试一下

s1.py

USER = 'root'
port = 23

s2.py

import s1


print(dir(s1)) #变成字典
# ['USER', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'port']

print(s1)
print(s1.USER)  导入文件也可以点的方式获取到文件中的内容,文件实际上也是个对象,可以通过点的方式来获取值

for key in dir(s1):
    if key.isupper():  # 我们只要大写的,因为配置文件里面规定大写,小写就排除掉
        print(key)

config.py 

将custom_settings和global_settings里所有的配置key,
value值都设置到settings对象里面😭
from conf import custom_settings
from . import global_settings
全局配置要放在自定制配置上面,因为这样才会实现全局和局部同一个配置,先加载用户写的配置
class Settings(): def __init__(self): ### 全局设置 for key in dir(global_settings): if key.isupper(): v = getattr(global_settings, key) # 获取全局配置文件中配置的值,第一个是对象(导入的文件),第二个key,v就是key对应的值 setattr(self, key,v) # self代表的是当前的对象settings,key就是配置文件的大写的配置,v 就是self.配置的值也就是key对应的值,
                        所以这样就可以通过settings这个对象点的方式获取到值
### 自定制配置 for key in dir(custom_settings): if key.isupper(): v = getattr(custom_settings, key) # 第一个是对象,第二个key setattr(self, key,v) # self代表的是当前的对象settings,key就是配置文件的大写的配置,v 就是self.配置的值,所以这样就可以通过settings这个对象点的方式获取到值 settings = Settings()

start.py

start文件中导入config中settings对象😗
from lib.config.config import settings

if __name__ == '__main__':
    pass

 







posted @ 2019-10-04 12:18  Tiffany'.'  阅读(480)  评论(0编辑  收藏  举报