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",
}
}
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
5.修改hostinfo目录下,修改views.py文件,查看启动属性
6.启动服务器,和收集脚本
python manage.py runserver 0.0.0.0:8000
python getHostInfo.py
7.修改收集信息脚本,将信息序列化内存中,执行脚本,序列化,查看打印信息
执行收集脚本,结果:
8.反序列化,修改views.py
执行收集脚本,运行结果:
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")
执行收集脚本,运行结果:
转载于:https://blog.51cto.com/huangzp/2089885