网络编程
位置:首页>> 网络编程>> Python编程>> Django通过json格式收集主机信息

Django通过json格式收集主机信息

作者:Nyan  发布时间:2022-03-23 19:58:49 

标签:Django,json,收集,主机

代码如下

Control:


from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
 # Examples:
 # url(r'^$', 'simplecmdb.views.home', name='home'),
 # url(r'^blog/', include('blog.urls')),

url(r'^admin/', include(admin.site.urls)),
 url(r'^hostinfo/collect/$','hostinfo.views.collect'),
 url(r'^hostinfo/getjson/$','hostinfo.views.getjson'),
 url(r'^hostinfo/gettxt/$','hostinfo.views.gettxt'),
)

View:


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

# Create your views here.

def collect(req):
 if req.POST:
   #dic = pickle.loads(req.body)
   dic = json.loads(req.body)
   hostname = dic['hostname']
   ip = dic['ip']
   product = dic['product']
   sn = dic['sn']
   vendor = dic['vendor']
   cpu_model = dic['cpu_model']
   cpu_num = dic['cpu_num']
   memory = dic['memory']
   osver = dic['osver']

try:
     host = Host.objects.get(sn=sn)
   except:
     host = Host()
   host.hostname = hostname
   host.ip = ip
   host.product = product
   host.sn = sn
   host.vendor = vendor
   host.cpu_model = cpu_model
   host.cpu_num = cpu_num
   host.memory = memory
   host.osver = osver

host.save()

return HttpResponse('data have save into DB')
 else:
   return HttpResponse('there is no data from POST method')

def getjson(req):
 ret_list = []
 hg = HostGroup.objects.all()
 for g in hg:
   ret = {'groupname':g.groupname,'members':[]}
   for h in g.members.all():
     ret_h = {'hostname':h.hostname,'ip':h.ip}
     ret['members'].append(ret_h)
 ret_list.append(ret)
 return HttpResponse(json.dumps(ret_list))

def gettxt(req):
 res = ''
 hg = HostGroup.objects.all()
 for g in hg:
   groupname = g.groupname
   for h in g.members.all():
     hostname = h.hostname
     ip = h.ip
     res += groupname+' '+hostname+' '+ip+'\n'
 return HttpResponse(res)

Model:


from django.db import models

# Create your models here.

class Host(models.Model):
 hostname = models.CharField(max_length=50)
 ip = models.IPAddressField()
 vendor = models.CharField(max_length=50)
 product = models.CharField(max_length=50)
 sn = models.CharField(max_length=50)
 cpu_model = models.CharField(max_length=50)
 cpu_num = models.IntegerField()
 memory = models.CharField(max_length=50)
 osver = models.CharField(max_length=50)
 def __unicode__(self):
   return self.hostname

class HostGroup(models.Model):
 groupname = models.CharField(max_length=50)
 members = models.ManyToManyField(Host)

来源:https://www.cnblogs.com/Nyan-Workflow-FC/p/5710903.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com