天天看點

django—pickle子產品序列化和反序列化(4)

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",
        } 
}      
django—pickle子產品序列化和反序列化(4)

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

django—pickle子產品序列化和反序列化(4)

5.修改hostinfo目錄下,修改views.py檔案,檢視啟動屬性

django—pickle子產品序列化和反序列化(4)

6.啟動伺服器,和收集腳本

python manage.py runserver 0.0.0.0:8000

python getHostInfo.py

django—pickle子產品序列化和反序列化(4)

7.修改收集資訊腳本,将資訊序列化記憶體中,執行腳本,序列化,檢視列印資訊

django—pickle子產品序列化和反序列化(4)
django—pickle子產品序列化和反序列化(4)

執行收集腳本,結果:

django—pickle子產品序列化和反序列化(4)

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

django—pickle子產品序列化和反序列化(4)

執行收集腳本,運作結果:

django—pickle子產品序列化和反序列化(4)

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")      
django—pickle子產品序列化和反序列化(4)