CMDB数据采集代码实现

目录:

  1. 创建一个django API来接受数据采集得到的数据
  2. 创建项目及目录结构
  3. 高级配置文件设置
  4. 可插拔式插件
  5. 数据采集迭代完成版
  6. 将ssh方式采集更换为并发方式
示例代码

https://download.csdn.net/download/qq_36327717/11827412
https://download.csdn.net/download/qq_36327717/11827410

创建一个django API来接受数据采集得到的数据

需要注意的点:

POST和GET的数据,都是从Body中获取到的
发过来的数据头中: content-type: application/www-form-urlencoded
此时 request.body将数据交给request.POST
当发过来的数据头是:content-type: application/json
需要使用request.body获取

在这里插入图片描述

创建项目及目录结构

先创建文件夹autoclient,然后再django中打开,创建如下几个目录

bin  : 核心的启动文件  start.py 
conf : 配置文件夹  
lib  :库文件 
src  : 核心的源代码目录
test : 开发的过程中, 需要进行代码的调试 

在这里插入图片描述

回到目录



高级配置文件设置

django的配置:

将自定制的配置和全局的配置集成在一个对象上, 之后想要使用任何属性的时候, 直接可以通过此对象获得

from django.conf import global_settings, settings
settings.TIME_ZONE

自建项目配置设置:

  1. 新建conf.py

在这里插入图片描述
2. 示例,例如在start.py中使用

from lib.config.conf import settings

if __name__ == '__main__':

    print(settings.PORT)

回到目录



可插拔式插件

实现类似django中间件配置形式

  1. 先在自定义配置中,定义plugin_dic
    在这里插入图片描述

  2. 在plugin目录下新建__init__.py

    from lib.config.conf import settings  # 导入配置类
    import importlib
    
    class PluginsManager():
        '''
        读取配置文件中的配置
        '''
    
        def __init__(self):
            self.plugin_dic = settings.PLUGINS_DICT  # 读取PLUGINS_DICT
    
        def execute(self):
            for k, v in self.plugin_dic.items():  # 遍历PLUGINS_DICT
                module_path, cls_name = v.rsplit('.', 1)  # 取出路径和类名
                module = importlib.import_module(module_path)  # 取出导入模块
                cls = getattr(module, cls_name)  # 获取类
                cls().process()  # 执行类中的process方法
    
  3. 因为在PluginsManager的execute方法中规

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值