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利用elaphe制作二维条形码实现代码
May 25 Python
Python中的ceil()方法使用教程
May 14 Python
解决Python传递中文参数的问题
Aug 04 Python
DataFrame 将某列数据转为数组的方法
Apr 13 Python
Python中PyQt5/PySide2的按钮控件使用实例
Aug 17 Python
pygame实现贪吃蛇游戏(下)
Oct 29 Python
Python常用模块logging——日志输出功能(示例代码)
Nov 20 Python
python实现局域网内实时通信代码
Dec 22 Python
Selenium 滚动页面至元素可见的方法
Mar 18 Python
构建高效的python requests长连接池详解
May 02 Python
python递归函数用法详解
Oct 26 Python
python中如何对多变量连续赋值
Jun 03 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
虹吸壶是谁发明的?煮出来的咖啡好喝吗
2021/03/04 冲泡冲煮
php计算整个mysql数据库大小的方法
2015/06/19 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
2015/07/31 PHP
CodeIgniter记录错误日志的方法全面总结
2016/05/17 PHP
Yii核心验证器api详解
2016/11/23 PHP
php简单计算年龄的方法(周岁与虚岁)
2016/12/06 PHP
PHP小白必须要知道的php基础知识(超实用)
2017/10/10 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
Nigma vs Alliance BO5 第一场2.14
2021/03/10 DOTA
js 获取Listbox选择的值的代码
2010/04/15 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
简介JavaScript中的italics()方法的使用
2015/06/08 Javascript
js实现可控制左右方向的无缝滚动效果
2016/05/29 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
浅谈Vue.js
2017/03/02 Javascript
Angularjs 事件指令详细整理
2017/07/27 Javascript
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
jQuery zTree插件快速实现目录树
2019/08/16 jQuery
原生JavaScript实现留言板
2021/01/10 Javascript
详解Python中的装饰器、闭包和functools的教程
2015/04/02 Python
Python 安装setuptools和pip工具操作方法(必看)
2017/05/22 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
python创建学生管理系统
2019/11/22 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
Anaconda的安装与虚拟环境建立
2020/11/18 Python
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
美国最大的购物网站:Amazon.com(亚马逊美国)
2020/05/23 全球购物
个人找工作自荐信格式
2013/09/21 职场文书
亲子拓展活动方案
2014/02/20 职场文书
大学生职业生涯规划书
2014/03/14 职场文书
建筑结构施工求职信
2014/07/11 职场文书
商务经理岗位职责
2014/07/30 职场文书
英文导游词
2015/02/13 职场文书
2015初中生物教研组工作总结
2015/07/21 职场文书
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript
java中如何截取字符串最后一位
2022/07/07 Java/Android