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