Django通過json格式收集主機信息
更新時間:2020年05月29日 10:37:18 作者:Nyan
這篇文章主要介紹了基于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)
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
相關文章
Python3.9.1中使用split()的處理方法(推薦)
這篇文章主要介紹了Python3.9.1中使用split()的處理方法(推薦),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02
使用python查找替換PowerPoint演示文稿中的文本
演示文稿已成為商務會議、學術報告和教育培訓中不可或缺的一部分,而PowerPoint演示文稿作為行業(yè)標準工具,更是承載著無數(shù)創(chuàng)意與信息的載體,本文將介紹如何使用Python來精確查找并替換PowerPoint演示文稿中的文本,需要的朋友可以參考下2024-07-07
Python實現(xiàn)查找匹配項作處理后再替換回去的方法
這篇文章主要介紹了Python實現(xiàn)查找匹配項作處理后再替換回去的方法,涉及Python字符串查找、轉換、輸出等相關操作技巧,需要的朋友可以參考下2017-06-06

