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使用sorted函数对列表进行排序的方法
Apr 04 Python
Python编程入门之Hello World的三种实现方式
Nov 13 Python
Python中%r和%s的详解及区别
Mar 16 Python
使用Kivy将python程序打包为apk文件
Jul 29 Python
利用Python循环(包括while&for)各种打印九九乘法表的实例
Nov 06 Python
python Celery定时任务的示例
Mar 13 Python
Python SQL查询并生成json文件操作示例
Aug 17 Python
Python实现提取XML内容并保存到Excel中的方法
Sep 01 Python
python通过TimedRotatingFileHandler按时间切割日志
Jul 17 Python
python如何实现从视频中提取每秒图片
Oct 22 Python
基于python操作ES实例详解
Nov 16 Python
用OpenCV进行年龄和性别检测的实现示例
Jan 29 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变量内存分配问题记录整理
2013/11/27 PHP
PHP把JPEG图片转换成Progressive JPEG的方法
2014/06/30 PHP
php模板引擎技术简单实现
2016/03/15 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
2016/10/20 PHP
PHP后门隐藏的一些技巧总结
2020/11/04 PHP
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
jQuery根据ID获取input、checkbox、radio、select的示例
2014/08/11 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
2014/09/22 Javascript
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
2015/10/30 Javascript
javascript入门之string对象【新手必看】
2016/11/22 Javascript
JavaScript中校验银行卡号的实现代码
2016/12/19 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
Vue实现导出excel表格功能
2018/03/30 Javascript
详解ES6 export default 和 import语句中的解构赋值
2019/05/28 Javascript
python线程锁(thread)学习示例
2013/12/04 Python
web.py获取上传文件名的正确方法
2014/08/26 Python
python中文编码问题小结
2014/09/28 Python
python获得文件创建时间和修改时间的方法
2015/06/30 Python
python使用str & repr转换字符串
2016/10/13 Python
Python最火、R极具潜力 2017机器学习调查报告
2017/12/11 Python
基于Python实现的ID3决策树功能示例
2018/01/02 Python
python实现公司年会抽奖程序
2019/01/22 Python
django admin后台添加导出excel功能示例代码
2019/05/15 Python
python 利用已有Ner模型进行数据清洗合并代码
2019/12/24 Python
Python3和PyCharm安装与环境配置【图文教程】
2020/02/14 Python
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
2013/06/06 HTML / CSS
浅谈基于Canvas的手绘风格图形库Rough.js
2018/03/19 HTML / CSS
物业公司采购员岗位职责
2013/12/31 职场文书
办理生育手续介绍信
2014/01/14 职场文书
求职自荐信的格式
2014/04/07 职场文书
学校党的群众路线教育实践活动整改措施
2014/10/25 职场文书
母亲节寄语大全
2015/02/27 职场文书
医院财务人员岗位职责
2015/04/14 职场文书