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 random模块常用方法
Nov 03 Python
Ubuntu 下 vim 搭建python 环境 配置
Jun 12 Python
python使用jieba实现中文分词去停用词方法示例
Mar 11 Python
Python使用dict.fromkeys()快速生成一个字典示例
Apr 24 Python
linux下安装python3和对应的pip环境教程详解
Jul 01 Python
python在不同条件下的输入与输出
Feb 13 Python
python实现密码强度校验
Mar 18 Python
python使用Thread的setDaemon启动后台线程教程
Apr 25 Python
Python ckeditor富文本编辑器代码实例解析
Jun 22 Python
简单了解如何封装自己的Python包
Jul 08 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
Feb 18 Python
Jupyter notebook 更改文件打开的默认路径操作
May 21 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 分页原理分析,大家可以看看
2009/12/21 PHP
PHP程序员最常犯的11个MySQL错误小结
2010/11/20 PHP
php集成开发环境详解
2019/09/24 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
Javascript事件热键兼容ie|firefox
2010/12/30 Javascript
JS实现两表格里数据来回转移的方法
2015/05/28 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
2018/04/13 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
深入浅析vue全局环境变量和模式
2020/04/28 Javascript
Vue按时间段查询数据组件使用详解
2020/08/21 Javascript
在Vue中使用Echarts可视化库的完整步骤记录
2020/11/18 Vue.js
python改变日志(logging)存放位置的示例
2014/03/27 Python
Python求导数的方法
2015/05/09 Python
Python 的描述符 descriptor详解
2016/02/27 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
对python 中class与变量的使用方法详解
2019/06/26 Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
2019/08/09 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
python读取csv文件指定行的2种方法详解
2020/02/13 Python
Python实现自动访问网页的例子
2020/02/21 Python
在Python 的线程中运行协程的方法
2020/02/24 Python
python3让print输出不换行的方法
2020/08/24 Python
法国奢华女性时尚配饰网上商店:Monnier Frères
2016/08/27 全球购物
罗技英国官方网站:Logitech UK
2020/11/03 全球购物
法学毕业生自荐信
2013/11/13 职场文书
集团薪酬管理制度
2014/01/13 职场文书
三查三看党性分析材料
2014/02/18 职场文书
土木工程专业推荐信
2014/02/19 职场文书
《孙权劝学》教学反思
2014/04/23 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
七年级上册生物的课件
2019/08/07 职场文书
python pyhs2 的安装操作
2021/04/07 Python
关于python类SortedList详解
2021/09/04 Python
教你修复 Win11应用商店加载空白问题
2021/12/06 数码科技