1.setting.py文件,修改数据存储方式

说明:注释sqlite3数据库,改用mysql连接

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "cmdb",
        "USER": "root",
        "PASSWORD": "root",
        "HOST": "127.0.0.1",
        "PORT": "3306",
        } 
}


1.png


2.安装mysql,创建库cmdb数据库

命令:yum install -y mysql-server


3.删除原来sqlite文件、安装mysql模块文件

命令:rm -rf db.sqlite3

      yum list|grep MySQL-python

      yum install -y MySQL-python.x86_64


4.使用管理脚本,同步数据库

python manage.py validate

python manage.py syncdb


1.png


5.修改hostinfo目录下,修改views.py文件,查看启动属性

1.png


6.启动服务器,和收集脚本

python manage.py runserver 0.0.0.0:8000

python getHostInfo.py

1.png


7.修改收集信息脚本,将信息序列化内存中,执行脚本,序列化,查看打印信息

1.png

2.png


执行收集脚本,结果:

1.png


8.反序列化,修改views.py

1.png


执行收集脚本,运行结果:

1.png



9.修改信息收集脚本,实例化

from django.shortcuts import render
from hostinfo.models import Host
from django.http import HttpResponse
import pickle

def collect(req):
    #print req
    if req.POST:
    #if req.method == "POST":
        #print req.body
        #print pickle.loads(req.body)
        #hostname = req.POST.get("hostname")
        #ip = req.POST.get("ip")
        #osver = req.POST.get("osver")
        #vendor = req.POST.get("vendor")
        #product = req.POST.get("product")
        #cpu_model = req.POST.get("cpu_model")
        #cpu_num = req.POST.get("cpu_num")
        #memory = req.POST.get("memory")
        #sn = req.POST.get("sn")
        
        obj = pickle.loads(req.body)
        hostname = obj["hostname"]
        ip = obj["ip"]
        osver = obj["osver"]
        vendor = obj["vendor"]
        product = obj["product"]
        cpu_model = obj["cpu_model"]
        cpu_num = obj["cpu_num"]
        memory = obj["memory"]
        sn = obj"sn"]
        
        host = Host()
        host.hostname = hostname
        
        host.ip =ip
        host.osver = osver
        host.product = product
        host.cpu_model = cpu_model
        host.cpu_num = cpu_num
        host.memory = memory
        host.vendor = vendor
        host.sn = sn
        host.save()
        return HttpResponse("OK")
    else:
        return HttpResponse("no data")

1.png


执行收集脚本,运行结果:

1.png