如下,前面我们是使用 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())
[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
[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