编写一个API,当我们访问 http://192.168.216.128:8000/hostinfo/getjson 时,返回 json 格式的主机组和组成员信息:

[root@localhost SimpleCMDB]$ cat SimpleCMDB/urls.py
....
urlpatterns = patterns('',
....
url(r'^hostinfo/getjson/$', 'hostinfo.views.getjson'),
)
[root@localhost SimpleCMDB]$ cat hostinfo/views.py
from django.shortcuts import render
from django.http import HttpResponse
from hostinfo.models import Host, HostGroup
import json .... def getjson(request):
data = []
host_group = HostGroup.objects.all()
for group in host_group:
result = {'groupname': group.group_name, 'members': []}
for hosts in group.group_members.all():
hostinfo = {'hostname': hosts.hostname,
'ip': hosts.ip,
'vendor': hosts.vendor,
'product': hosts.product,
'sn': hosts.sn,
'cpu_model': hosts.cpu_model,
'cpu_num': hosts.cpu_num,
'memory': hosts.memory,
'osver': hosts.osver}
result['members'].append(hostinfo)
data.append(result) return HttpResponse(json.dumps(data))

编写一个API,当我们访问 http://192.168.216.128:8000/hostinfo/getshell 时,返回 shell 格式的主机组和组成员信息(返回 shell 格式的信息,主要是为了我们能在 Linux 下使用 grep 、awk 等对返回的数据做进一步处理):

[root@localhost SimpleCMDB]$ cat SimpleCMDB/urls.py
....
urlpatterns = patterns('',
....
url(r'^hostinfo/getshell/$', 'hostinfo.views.getshell'),
)
[root@localhost SimpleCMDB]$ cat hostinfo/views.py
from django.shortcuts import render
from django.http import HttpResponse
from hostinfo.models import Host, HostGroup
import json ....def getshell(request):
data = ''
host_group = HostGroup.objects.all()
for group in host_group:
groupname = group.group_name
for hosts in group.group_members.all():
hostname = hosts.hostname
ip = hosts.ip
vendor = hosts.vendor
product = hosts.product
sn = hosts.sn
cpu_model = hosts.cpu_model
cpu_num = hosts.cpu_num
memory = hosts.memory
osver = hosts.osver
data += groupname + ' ' + hostname + ' ' + ip + ' ' + osver + ' ' + memory + '\n' return HttpResponse(data)

Django SimpleCMDB API的更多相关文章

  1. 初识Django —Python API接口编程入门

    初识Django —Python API接口编程入门 一.WEB架构的简单介绍 Django是什么? Django是一个开放源代码的Web应用框架,由Python写成.我们的目标是用Python语言, ...

  2. Django QuerySet API文档

    在查询时发生了什么(When QuerySets are evaluated) QuerySet 可以被构造,过滤,切片,做为参数传递,这些行为都不会对数据库进行操作.只要你查询的时候才真正的操作数据 ...

  3. tastypie Django REST API developement 1)

    Read by linux/GNU commands Let's follow and start from here:http://django-tastypie.readthedocs.org/e ...

  4. $ Django 调API的几种方式

    API调用方式 下面是python中会用到的库.urllib2httplib2pycurlrequestsurllib2 #request import requests, json github_u ...

  5. day 68 django 之api操作 | jQueryset集合与对象

    我们的orm里面分为: jQueryset集合, 还有对象, 我们的jqueryset集合里面可以有多个对象,这句话的意思就是我们的对象是最小的单位,不可以再拆分了,我们的jQueryset集合就相当 ...

  6. python基于django编写api+前端后端分离

    有用 https://segmentfault.com/a/1190000016049962#articleHeader2 python的前后端分离(一):django+原生js实现get请求 htt ...

  7. Django SimpleCMDB 项目

    创建 SimpleCMDB 项目: [root@localhost ~]$ django-admin.py startproject SimpleCMDB 创建应用,收集主机信息: [root@loc ...

  8. Django SimpleCMDB 使用序列化

    如下,前面我们是使用 urllib 方法来转换并传递数据的: [root@localhost ~]$ tail /data/script/getHostInfo.py if __name__ == ' ...

  9. Django SimpleCMDB WSGI

    一.WSGI 介绍 (1) 在前面的学习中,我们是通过 python manage.py runserver 0.0.0.0:8000 来启动并访问开发服务器的:(2) 但在实际中我们是通过直接访问 ...

随机推荐

  1. 安卓程序代写 网上程序代写[原]Android之Bluetooth编程

    ViewGroup 相关资料 : http://www.incoding.org/admin/archives/199.html http://bbs.csdn.net/topics/37014474 ...

  2. Qt 程序打包发布总结

    1.  概述 当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行.编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装 ...

  3. Chrome驱动安装问题

    1.org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value' 原因:浏览器 ...

  4. 【Html】div 加载 html页面的方法

    做网页的单页面应用时,需要在一个HTML的Div元素中加载另一个HTML页面,以前有一种方法就是用iframe,举例如下:(亲测可行) <div class="main-contain ...

  5. 阿里技术嘉年华-aDev内容感悟

    之前参见了ADC然后要求在组内做了个简单的分享,因为写这个PPT的时候ADC的资料还没分享,所以仅凭自己记忆写的一点感悟罢了. PPT下载

  6. 多线程系列八:线程安全、Java内存模型(JMM)、底层实现原理

    一.线程安全 1.  怎样让多线程下的类安全起来 无状态.加锁.让类不可变.栈封闭.安全的发布对象 2. 死锁 2.1 死锁概念及解决死锁的原则 一定发生在多个线程争夺多个资源里的情况下,发生的原因是 ...

  7. Spring系列(二):Spring IoC/DI的理解

    这几天重新学习了一下Spring,在网上找了相关的ppt来看,当看到Spring IoC这一章节的时候,先大致浏览了一下内容,有将近50页的内容,内心窃喜~QAQ~,看完这些内容能够对IoC有更深层次 ...

  8. 目标检测之2015iccv---objdetection 专题论文

    http://mp7.watson.ibm.com/ICCV2015/ObjectDetectionICCV2015.html

  9. Git -- 远程仓库简介

    到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了. 可是有用过集中式版本控制系统SVN的童鞋会站出来说,这些功能在SVN里早就有了,没看出Gi ...

  10. Oracle错误IMP-00010: 不是有效的导出文件, 头部验证失败 分类: Oracle 2015-07-09 13:56 20人阅读 评论(0) 收藏

    Oracle 11g的dmp备份文件导入到Oracle 10g,出现错误信息: Import: Release 10.2.0.1.0 - Production on 星期四 7月 9 13:47:04 ...