Django SimpleCMDB API
编写一个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的更多相关文章
- 初识Django —Python API接口编程入门
初识Django —Python API接口编程入门 一.WEB架构的简单介绍 Django是什么? Django是一个开放源代码的Web应用框架,由Python写成.我们的目标是用Python语言, ...
- Django QuerySet API文档
在查询时发生了什么(When QuerySets are evaluated) QuerySet 可以被构造,过滤,切片,做为参数传递,这些行为都不会对数据库进行操作.只要你查询的时候才真正的操作数据 ...
- tastypie Django REST API developement 1)
Read by linux/GNU commands Let's follow and start from here:http://django-tastypie.readthedocs.org/e ...
- $ Django 调API的几种方式
API调用方式 下面是python中会用到的库.urllib2httplib2pycurlrequestsurllib2 #request import requests, json github_u ...
- day 68 django 之api操作 | jQueryset集合与对象
我们的orm里面分为: jQueryset集合, 还有对象, 我们的jqueryset集合里面可以有多个对象,这句话的意思就是我们的对象是最小的单位,不可以再拆分了,我们的jQueryset集合就相当 ...
- python基于django编写api+前端后端分离
有用 https://segmentfault.com/a/1190000016049962#articleHeader2 python的前后端分离(一):django+原生js实现get请求 htt ...
- Django SimpleCMDB 项目
创建 SimpleCMDB 项目: [root@localhost ~]$ django-admin.py startproject SimpleCMDB 创建应用,收集主机信息: [root@loc ...
- Django SimpleCMDB 使用序列化
如下,前面我们是使用 urllib 方法来转换并传递数据的: [root@localhost ~]$ tail /data/script/getHostInfo.py if __name__ == ' ...
- Django SimpleCMDB WSGI
一.WSGI 介绍 (1) 在前面的学习中,我们是通过 python manage.py runserver 0.0.0.0:8000 来启动并访问开发服务器的:(2) 但在实际中我们是通过直接访问 ...
随机推荐
- git使用情景2:commit之后,想撤销commit
================实际操作============================== 提交到git上撤回 git reset head^1 提交到本地 撤回 git reset --s ...
- js json日期格式转换日期方法
接收json数据,日期格式为:"\/Date(1414078309687)\/" var value = "/Date(1414078309687)/"; ...
- 第1章:认识Shell脚本
第一章:认识Shell脚本 1.1.什么是Shell Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行. 实际上Shell是一个命令解释器 ...
- 植物 miRNA 研究
相比动物miRNA 而言, 植物miRNA 的研究相对较少. 植物miRNA 相比动物miRNA , 有以下特点: 1) 植物miRNA 的长度为 21 nt 左右, 动物miRNA 长度在 22 ~ ...
- Kubeadm 安装
version 1.7.0 已解决: echo "1" > /proc/sys/net/bridge/bridge-nf-call-iptables error: faile ...
- 如何去掉jQWidgets中TreeGrid和Grid右下角的链接
关于如何去掉这个水印,这是官方的说法. 更新了jQWidgets版本,发现在使用过程中发现每次渲染完TreeGrid和Grid后会在表格右下角出现一个www.jqwidgets.com的span标签. ...
- MyBatis批量增删改的另外一种思路(推荐)
零.传统拼接SQL语句的弊端 传统上利用Mybatis进行批量操作的方式本质来说是拼接SQL语句,然后交给底层执行,如之前博文而言. 其实这种方式是存在弊端的: 1. SQL语句可能会过长,DB的引擎 ...
- [mysql]ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value
From: http://m.blog.csdn.net/blog/langkeziju/13511411 我的MySQL版本为5.6.14版本,是二进制包安装的(虽然是二进制包安装的,但是以下问题同 ...
- crontab(定时任务操作)
定时任务顾名思义就是在某一时间点自动进行任务操作.在做Pgsql的备份利用crontab进行定时操作, 使用起来比较方便.故分享具体的定时编辑命令:crontab -e 首先从crontab的文件分析 ...
- 边框颜色为 tintColor 的 UIButton
创建一个 UIButton 的子类,重写其方法: - (void)drawRect:(CGRect)rect { [[self layer] setCornerRadius:CORNER_RADIUS ...