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 相关文章推荐
Hadoop中的Python框架的使用指南
Apr 22 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
Dec 09 Python
python如何将图片转换为字符图片
Aug 19 Python
python修改txt文件中的某一项方法
Dec 29 Python
python读写csv文件方法详细总结
Jul 05 Python
一行Python代码制作动态二维码的实现
Sep 09 Python
Django中自定义模型管理器(Manager)及方法
Sep 23 Python
python实现宿舍管理系统
Nov 22 Python
python装饰器使用实例详解
Dec 14 Python
python定义类的简单用法
Jul 24 Python
用Python自动清理系统垃圾的实现
Jan 18 Python
Python天气语音播报小助手
Sep 25 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
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
php类自动加载器实现方法
2015/07/28 PHP
PHP实现补齐关闭的HTML标签
2016/03/22 PHP
php7函数,声明,返回值等新特性介绍
2018/05/25 PHP
使用IE的地址栏来辅助调试Web页脚本
2007/03/08 Javascript
javascript写的日历类(基于pj)
2010/12/28 Javascript
jQuery图片滚动图片的效果(另类实现)
2013/06/02 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
2015/03/18 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
2015/06/11 Javascript
基于javascript实现简单计算器功能
2016/01/03 Javascript
React组件的三种写法总结
2017/01/12 Javascript
微信小程序 页面跳转和数据传递实例详解
2017/01/19 Javascript
jQuery动态产生select option下拉列表
2017/03/15 Javascript
Bootstrap模态框插件使用详解
2017/05/11 Javascript
深入理解vue2.0路由如何配置问题
2017/07/18 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
2017/07/19 jQuery
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
微信小程序 可搜索的地址选择实现详解
2019/08/28 Javascript
使用VScode 插件debugger for chrome 调试react源码的方法
2019/09/13 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
Vue项目接入Paypal实现示例详解
2020/06/04 Javascript
Vue 构造选项 - 进阶使用说明
2020/08/14 Javascript
python3 图片referer防盗链的实现方法
2018/03/12 Python
python利用微信公众号实现报警功能
2018/06/10 Python
python重试装饰器的简单实现方法
2019/01/31 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
2020/04/24 Python
CSS3实现网站商品展示效果图
2020/01/18 HTML / CSS
德国鞋子网上商店:Omoda.de
2017/03/31 全球购物
求职面试个人自我评价
2014/02/28 职场文书
《青海高原一株柳》教学反思
2014/04/25 职场文书
部门群众路线教育实践活动对照检查材料思想汇报
2014/10/07 职场文书
2015年发展党员工作总结报告
2015/03/31 职场文书
初三英语教学反思
2016/02/15 职场文书
小学语文课《掌声》教学反思
2016/03/03 职场文书