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 list操作用法总结
Nov 10 Python
浅谈python 线程池threadpool之实现
Nov 17 Python
Python3实现的字典遍历操作详解
Apr 18 Python
浅析python中numpy包中的argsort函数的使用
Aug 30 Python
python线程定时器Timer实现原理解析
Nov 30 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
Dec 09 Python
Python装饰器原理与基本用法分析
Jan 07 Python
python str字符串转uuid实例
Mar 03 Python
Python基于百度AI实现OCR文字识别
Apr 02 Python
Python实现Word表格转成Excel表格的示例代码
Apr 16 Python
浅析python实现动态规划背包问题
Dec 31 Python
在pycharm中无法import所安装的库解决方案
May 31 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程序
2006/10/09 PHP
php中iconv函数使用方法
2008/05/24 PHP
php判断页面是否是微信打开的示例(微信打开网页)
2014/04/25 PHP
简单实用的网站PHP缓存类实例
2014/07/18 PHP
PHP 微信支付类 demo
2015/11/30 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
PHP如何开启Opcache功能提升程序处理效率
2020/04/27 PHP
你的编程语言可以这样做吗?
2006/09/07 Javascript
JavaScript小技巧 2.5 则
2010/09/12 Javascript
Jquery使用Firefox FireBug插件调试Ajax步骤讲解
2013/12/02 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
js定义类的几种方法(推荐)
2016/06/08 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
2016/12/13 Javascript
完美解决input[type=number]无法显示非数字字符的问题
2017/02/28 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
2017/12/05 Javascript
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
Python常用知识点汇总
2016/05/08 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
Python判断远程服务器上Excel文件是否被人打开的方法
2020/07/13 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
html5拖拽应用记录及注意点
2020/05/27 HTML / CSS
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
当文件系统受到破坏时,如何检查和修复系统?
2012/03/09 面试题
学期自我鉴定范文
2013/10/01 职场文书
幼儿园教师个人反思
2014/01/30 职场文书
图书室标语
2014/06/21 职场文书
网络技术专业求职信
2014/07/13 职场文书
2014年数学教师工作总结
2014/12/03 职场文书
2014城乡环境综合治理工作总结
2014/12/19 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
《工作是最好的修行》读后感3篇
2019/12/13 职场文书
SSM项目使用拦截器实现登录验证功能
2022/01/22 Java/Android