zoukankan      html  css  js  c++  java
  • python-Django收集主机信息json格式

    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 = hostname
    28         host.ip = ip
    29         host.product = product
    30         host.sn = sn
    31         host.vendor = vendor
    32         host.cpu_model = cpu_model
    33         host.cpu_num = cpu_num
    34         host.memory = memory
    35         host.osver = osver
    36 
    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.groupname
    60         for h in g.members.all():
    61             hostname = h.hostname
    62             ip = h.ip
    63             res += groupname+' '+hostname+' '+ip+'
    '
    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.hostname
    17 
    18 class HostGroup(models.Model):
    19     groupname = models.CharField(max_length=50)
    20     members = models.ManyToManyField(Host)
  • 相关阅读:
    Shell从入门到精通进阶之四:流程控制
    15个Python面试问题(附答案)
    python教程:内置函数和语法糖触发魔法方法
    python教程:利用while求100内的整数和
    python 教程:read(),readline() 和 readlines() 比较
    python生成随机数:uniform(), randint(), gauss(), expovariate()
    Python教程: 字符串转义序列及格式化
    python单例模式的五种实现方式
    Python NumPy的常用函数
    python五种调试或排错的方法
  • 原文地址:https://www.cnblogs.com/Nyan-Workflow-FC/p/5710903.html
Copyright © 2011-2022 走看看