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

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

代码如下

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

标签:Django,json,收集,主机
0
投稿

猜你喜欢

  • SQL Server 2008 到底需要使用哪些端口?

    2012-11-30 20:29:41
  • 轻松实现php文件上传功能

    2023-11-17 04:34:12
  • Python中的groupby分组功能的实例代码

    2021-09-17 20:48:15
  • Python字典对象实现原理详解

    2023-06-11 01:53:21
  • Python基本运算几何运算处理数字图像示例

    2021-08-22 23:25:05
  • Python的函数的一些高阶特性

    2022-06-04 15:06:28
  • js正则相关知识点专题

    2024-05-13 10:07:08
  • 一文读懂Python 枚举

    2023-02-16 16:12:46
  • Python代码阅读--列表元素逻辑判断

    2022-08-05 16:12:57
  • python笔记之使用fillna()填充缺失值

    2023-12-22 19:53:49
  • golang接口IP限流,IP黑名单,IP白名单的实例

    2024-04-25 15:18:14
  • 在Pycharm中执行scrapy命令的方法

    2022-10-17 03:45:26
  • Python实战实现爬取天气数据并完成可视化分析详解

    2022-01-04 09:33:44
  • python数据归一化及三种方法详解

    2023-02-28 01:48:40
  • Oracle常用命令大全集

    2010-07-21 13:18:00
  • python实现复制大量文件功能

    2023-09-03 16:42:54
  • 对tensorflow中cifar-10文档的Read操作详解

    2022-08-10 06:59:10
  • js控制图片闪烁代码

    2008-07-30 12:35:00
  • Python实现序列化及csv文件读取

    2023-08-09 06:55:46
  • pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作

    2023-11-30 01:20:41
  • asp之家 网络编程 m.aspxhome.com