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中使用tarfile压缩、解压tar归档文件示例
Apr 05 Python
python关闭windows进程的方法
Apr 18 Python
tensorflow创建变量以及根据名称查找变量
Mar 10 Python
Django处理文件上传File Uploads的实例
May 28 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
Jun 13 Python
Python 获取windows桌面路径的5种方法小结
Jul 15 Python
简单了解python装饰器原理及使用方法
Dec 18 Python
Python面向对象之继承原理与用法案例分析
Dec 31 Python
python使用梯度下降算法实现一个多线性回归
Mar 24 Python
Python 实现自动完成A4标签排版打印功能
Apr 09 Python
Python爬虫之Selenium警告框(弹窗)处理
Dec 04 Python
你需要掌握的20个Python常用技巧
Feb 28 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 session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
实例讲解php将字符串输出到HTML
2019/01/27 PHP
[推荐]javascript 面向对象技术基础教程
2009/03/03 Javascript
JavaScript 常见对象类创建代码与优缺点分析
2009/12/07 Javascript
超酷的网页音乐播放器DewPlayer使用方法
2010/12/18 Javascript
JavaScript下通过的XMLHttpRequest发送请求的代码
2011/06/28 Javascript
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
多种方法实现load加载完成后把图片一次性显示出来
2014/02/19 Javascript
常见的原始JS选择器使用方法总结
2014/04/09 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
2016/06/22 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
2016/11/24 Javascript
使用jquery datatable和bootsrap创建表格实例代码
2017/03/17 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
2019/11/04 Javascript
微信小程序实现转盘抽奖
2020/09/21 Javascript
python在多玩图片上下载妹子图的实现代码
2013/08/13 Python
python中lambda与def用法对比实例分析
2015/04/30 Python
Python如何获得百度统计API的数据并发送邮件示例代码
2019/01/27 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
零基础学python应该从哪里入手
2020/08/11 Python
浅析Python的命名空间与作用域
2020/11/25 Python
python实现学生信息管理系统源码
2021/02/22 Python
联想墨西哥官方网站:Lenovo墨西哥
2016/08/17 全球购物
时尚孕妇装:HATCH Collection
2019/09/24 全球购物
平面设计的岗位职责
2013/11/08 职场文书
财务内勤岗位职责
2014/04/17 职场文书
责任担保书范文
2014/05/21 职场文书
校园元旦活动总结
2014/07/09 职场文书
2014年底工作总结
2014/12/15 职场文书
服装区域经理岗位职责
2015/04/10 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书
MySQL中datetime时间字段的四舍五入操作
2021/10/05 MySQL
python的html标准库
2022/04/29 Python