博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django SimpleCMDB 使用序列化
阅读量:4680 次
发布时间:2019-06-09

本文共 2876 字,大约阅读时间需要 9 分钟。

如下,前面我们是使用 urllib 方法来转换并传递数据的:

[root@localhost ~]$ tail /data/script/getHostInfo.py if __name__ == '__main__':    ....    data = urllib.urlencode(hostInfo)    request = urllib2.urlopen('http://192.168.216.128:8000/hostinfo/collect/', data)    print(request.read())

下面我们用序列化的方式来转换并传递数据,序列化用到的模块是 pickle ,关于序列化参考:

[root@localhost ~]$ tail /data/script/getHostInfo.py import pickle if __name__ == '__main__':    ....    data = pickle.dumps(hostInfo)    request = urllib2.urlopen('http://192.168.216.128:8000/hostinfo/collect/', data)    print(request.read())
[root@localhost SimpleCMDB]$ cat hostinfo/views.py    # 修改视图函数from django.shortcuts import renderfrom django.http import HttpResponsefrom hostinfo.models import Hostimport pickle# Create your views here.def collect(request):    if request.POST:        obj = pickle.loads(request.body)    # 先loads()保存成对象        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.vendor = vendor        host.product = product        host.cpu_model = cpu_model        host.cpu_num = cpu_num        host.memory = memory        host.sn = sn        host.save()        return HttpResponse('OK')    else:        return HttpResponse('No Data!')
[root@localhost SimpleCMDB]$ python /data/script/getHostInfo.py OK

也可以使用 json 模块以序列化的方式来转换并传递数据:

[root@localhost ~]$ tail /data/script/getHostInfo.py import jsonif __name__ == '__main__':    ....    data = json.dumps(hostInfo)    request = urllib2.urlopen('http://192.168.216.128:8000/hostinfo/collect/', data)    print(request.read())
[root@localhost SimpleCMDB]$ cat hostinfo/views.pyfrom django.shortcuts import renderfrom django.http import HttpResponsefrom hostinfo.models import Hostimport json# Create your views here.def collect(request):    if request.POST:        obj = json.loads(request.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.vendor = vendor        host.product = product        host.cpu_model = cpu_model        host.cpu_num = cpu_num        host.memory = memory        host.sn = sn        host.save()        return HttpResponse('OK')    else:        return HttpResponse('No Data!')
[root@localhost SimpleCMDB]$ python /data/script/getHostInfo.py OK

 

 

 

 

 

 

 

 

 

      

转载于:https://www.cnblogs.com/pzk7788/p/10349575.html

你可能感兴趣的文章