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 相关文章推荐
35个Python编程小技巧
Apr 01 Python
跟老齐学Python之编写类之三子类
Oct 11 Python
Python之str操作方法(详解)
Jun 19 Python
使用python为mysql实现restful接口
Jan 05 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
Mar 13 Python
python绘制圆柱体的方法
Jul 02 Python
pandas 空的dataframe 插入列名的示例
Oct 30 Python
对python for 文件指定行读写操作详解
Dec 29 Python
Spring http服务远程调用实现过程解析
Jun 11 Python
Python使用xlrd实现读取合并单元格
Jul 09 Python
Python+Kepler.gl实现时间轮播地图过程解析
Jul 20 Python
python -v 报错问题的解决方法
Sep 15 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检测iis环境是否支持htaccess的方法
2014/02/18 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
PHP面相对象中的重载与重写
2017/02/13 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
2019/11/09 PHP
JavaScript导出Excel实例详解
2014/11/25 Javascript
对比分析AngularJS中的$http.post与jQuery.post的区别
2015/02/27 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
浅谈jQuery添加的HTML,JS失效的问题
2016/10/05 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
2016/12/20 Javascript
jquery设置css样式的多种方法(总结)
2017/02/21 Javascript
微信小程序日期选择器实例代码
2018/07/18 Javascript
nodejs更新package.json中的dependencies依赖到最新版本的方法
2018/10/10 NodeJs
js实现每日签到功能
2018/11/29 Javascript
微信小程序实现随机验证码功能
2018/12/20 Javascript
JavaScript中AOP的实现与应用
2019/05/06 Javascript
JS script脚本中async和defer区别详解
2020/06/24 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
JS常用跨域方法实现原理解析
2020/12/09 Javascript
使用python实现个性化词云的方法
2017/06/16 Python
windows 下python+numpy安装实用教程
2017/12/23 Python
Python字符串的全排列算法实例详解
2019/01/07 Python
Django choices下拉列表绑定实例
2020/03/13 Python
python画环形图的方法
2020/03/25 Python
美国男女折扣服饰百货连锁店:Stein Mart
2017/05/02 全球购物
Currentbody法国:健康与美容高科技产品
2020/08/16 全球购物
物理专业大学生职业生涯规划书
2014/02/07 职场文书
蛋糕店创业计划书
2014/05/06 职场文书
观看《周恩来的四个昼夜》思想汇报
2014/09/12 职场文书
四风批评与自我批评发言稿
2014/10/14 职场文书
自我检讨书范文
2015/01/28 职场文书
办公室个人总结
2015/02/28 职场文书
队名及霸气口号大全
2015/12/25 职场文书
Python基础知识学习之类的继承
2021/05/31 Python
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers
Linux磁盘管理方法介绍
2022/06/01 Servers