Control:
1 from django.conf.urls import patterns, include, url 2 3 from django.contrib import admin 4 admin.autodiscover() 5 6 urlpatterns = patterns('', 7 # Examples: 8 # url(r'^$', 'simplecmdb.views.home', name='home'), 9 # url(r'^blog/', include('blog.urls')),10 11 url(r'^admin/', include(admin.site.urls)),12 url(r'^hostinfo/collect/$','hostinfo.views.collect'),13 url(r'^hostinfo/getjson/$','hostinfo.views.getjson'),14 url(r'^hostinfo/gettxt/$','hostinfo.views.gettxt'),15 )
View:
1 from django.shortcuts import render 2 from django.http import HttpResponse 3 from hostinfo.models import Host,HostGroup 4 import pickle 5 import json 6 7 # Create your views here. 8 9 def collect(req):10 if req.POST:11 #dic = pickle.loads(req.body)12 dic = json.loads(req.body)13 hostname = dic['hostname']14 ip = dic['ip']15 product = dic['product']16 sn = dic['sn']17 vendor = dic['vendor']18 cpu_model = dic['cpu_model']19 cpu_num = dic['cpu_num']20 memory = dic['memory']21 osver = dic['osver']22 23 try:24 host = Host.objects.get(sn=sn)25 except:26 host = Host()27 host.hostname = hostname28 host.ip = ip29 host.product = product30 host.sn = sn31 host.vendor = vendor32 host.cpu_model = cpu_model33 host.cpu_num = cpu_num34 host.memory = memory35 host.osver = osver36 37 host.save()38 39 return HttpResponse('data have save into DB')40 else:41 return HttpResponse('there is no data from POST method')42 43 def getjson(req):44 ret_list = []45 hg = HostGroup.objects.all()46 for g in hg:47 ret = { 'groupname':g.groupname,'members':[]}48 for h in g.members.all():49 ret_h = { 'hostname':h.hostname,'ip':h.ip}50 ret['members'].append(ret_h)51 ret_list.append(ret)52 return HttpResponse(json.dumps(ret_list))53 54 55 def gettxt(req):56 res = ''57 hg = HostGroup.objects.all()58 for g in hg:59 groupname = g.groupname60 for h in g.members.all():61 hostname = h.hostname62 ip = h.ip63 res += groupname+' '+hostname+' '+ip+'\n'64 return HttpResponse(res)
Model:
1 from django.db import models 2 3 # Create your models here. 4 5 class Host(models.Model): 6 hostname = models.CharField(max_length=50) 7 ip = models.IPAddressField() 8 vendor = models.CharField(max_length=50) 9 product = models.CharField(max_length=50)10 sn = models.CharField(max_length=50)11 cpu_model = models.CharField(max_length=50)12 cpu_num = models.IntegerField()13 memory = models.CharField(max_length=50)14 osver = models.CharField(max_length=50)15 def __unicode__(self):16 return self.hostname17 18 class HostGroup(models.Model):19 groupname = models.CharField(max_length=50)20 members = models.ManyToManyField(Host)