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


Posted in Python onMay 29, 2020

代码如下

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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现向QQ群成员自动发邮件的方法
Nov 19 Python
Python中的类与对象之描述符详解
Mar 27 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
Jun 07 Python
获取Django项目的全部url方法详解
Oct 26 Python
selenium+python 去除启动的黑色cmd窗口方法
May 22 Python
Python3实现对列表按元组指定列进行排序的方法分析
Dec 22 Python
如何在Django中设置定时任务的方法示例
Jan 18 Python
python 寻找离散序列极值点的方法
Jul 10 Python
Python字典添加,删除,查询等相关操作方法详解
Feb 07 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
Feb 27 Python
在python中使用nohup命令说明
Apr 16 Python
Python人工智能之混合高斯模型运动目标检测详解分析
Nov 07 Python
Python小白不正确的使用类变量实例
May 29 #Python
python小白切忌乱用表达式
May 29 #Python
Python爬虫实现百度翻译功能过程详解
May 29 #Python
Django中的模型类设计及展示示例详解
May 29 #Python
如何理解Python中包的引入
May 29 #Python
浅谈django channels 路由误导
May 28 #Python
Python如何实现FTP功能
May 28 #Python
You might like
php文件怎么打开 如何执行php文件
2011/12/21 PHP
php中将数组存到文件里的实现代码
2012/01/19 PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
2013/06/13 PHP
解析使用ThinkPHP应该掌握的调试手段
2013/06/20 PHP
php根据身份证号码计算年龄的实例代码
2014/01/18 PHP
等待指定时间后自动跳转或关闭当前页面的js代码
2013/07/09 Javascript
javascript 实现键盘上下左右功能的小例子
2013/09/15 Javascript
js判断设备是否为PC并调整图片大小
2014/02/12 Javascript
javascript中数组的多种定义方法和常用函数简介
2014/05/09 Javascript
Visual Studio中js调试的方法图解
2014/06/30 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
详解JavaScript中常用的函数类型
2015/11/18 Javascript
node.js实现端口转发
2016/04/14 Javascript
详解Jquery实现ready和bind事件
2016/04/14 Javascript
微信小程序 教程之列表渲染
2016/10/18 Javascript
深入理解Angularjs中的$resource服务
2016/12/31 Javascript
AngularJS使用ng-app自动加载bootstrap框架问题分析
2017/01/04 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
[jQuery] 事件和动画详解
2019/03/05 jQuery
详解如何使用微信小程序云函数发送短信验证码
2019/03/13 Javascript
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
Python获取CPU、内存使用率以及网络使用状态代码
2018/02/08 Python
使用Python实现一个栈判断括号是否平衡
2018/08/23 Python
详解Python中的各种转义符\n\r\t
2019/07/10 Python
python logging模块的使用详解
2020/10/23 Python
手把手教你实现一个canvas智绘画板的方法
2019/03/04 HTML / CSS
《难忘的泼水节》教学反思
2014/02/27 职场文书
2014年两会学习心得体会
2014/03/17 职场文书
元旦文艺汇演主持词
2014/03/26 职场文书
班级寄语大全
2014/04/10 职场文书
2015学习委员工作总结范文
2015/04/03 职场文书
基层组织建设年活动总结
2015/05/09 职场文书
钢铁是怎样炼成的读书笔记
2015/06/29 职场文书
小学英语教学随笔
2015/08/14 职场文书
图神经网络GNN算法
2022/05/11 Python