python脚本采集服务器数据通过API提交到django web服务器,然后展示在页面上

采集服务器的信息的python程序

#coding:utf-8

import psutil

import urllib

import urllib.request

import urllib.parse

#import urllib2

import requests

#获取数据

cpuData = psutil.cpu_times()

#处理数据

cpuMax = cpuData.user+cpuData.system+cpuData.idle

cpuUsed = cpuData.user+cpuData.system

cpuUse = cpuUsed/cpuMax

#将数据进行打包

data = {"cpuUsed":cpuUse}

#sendData = urllib.parse.urlencode(data)

#sendData = sendData.encode('utf-8')

url = "http://192.168.52.129:8000/api/savecpu/"

#定义请求头部

header = {

"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",

}

#定义请求

res =requests.post(url,data = data)

#req = urllib.request.Request(url,data = sendData,headers = header,method = 'POST')

#添加Header

#req.add_header(headers = header)

#发送请求

#ope = urllib.request.urlopen(req)

#打印结果

print(res.content.decode())

#print(ope.read())

django创建项目,创建app,我这里创建了一个api的应用

api的urls.py文件配置信息

from django.conf.urls import url

from . import views

urlpatterns = [

url(r'^index/$', views.index,name='index'),

# url(r'^getinfo/$',views.getinfo,name='getinfo'),

url(r"^savecpu/$", views.saveCpu,name='saveCpu'),

url(r"^showcpu/$", views.show,name='showcpu'),

]

视图文件

定义了2个函数

def saveCpu(request):

"""

这个方法就是我们的接口方法,

当被请求时会将请求上来的数据存入数据库

"""

statue = {}

if request.method == "POST" and request.POST: #检测请求的方式是post,并且post请求有数据

#request.POST 这个方法以字典的形式存放着当前post请求的所有数据

cpuUsed = request.POST["cpuUsed"] #使用类字典的取值方式取出传递上来的cpu使用率

times = datetime.datetime.now() #获取当前时间

cpuDatabase = SaveCpu() #实例化一个SaveCpu的模型实例

cpuDatabase.used = cpuUsed #将数据赋值给模型

cpuDatabase.time = times #同上

cpuDatabase.save() #将模型映射到数据库

statue["statue"] = "success" #定义当前接口状态为保存成功

else:

statue["statue"] = "request method must be post" #定义当前接口状态为失败

return JsonResponse(statue) #将接口状态返回给请求者

def show(request):

cpu = SaveCpu.objects.all()

return render(request,"api/showData.html",locals())

# Create your views here.

agent 端(python程序)不断的采集到本机服务器的信息,通过api把数据传递给WEB服务器端(django),web server端接收到接口传过来的数据,把传递过来的数据按照格式存入数据库保存数据,从数据库中提取数据,前端页面展示数据

大概一个简单的server -》agent端就是这样的

时间: 2024-10-02 21:21:38

python脚本采集服务器数据通过API提交到django web服务器,然后展示在页面上的相关文章

Delphi中使用python脚本读取Excel数据

Delphi中使用python脚本读取Excel数据2007-10-18 17:28:22标签:Delphi Excel python原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://seewind.blog.51cto.com/249547/46669前段时间,在正式项目中使用Python来读取Excel表格的数据.具体需求是,项目数据库中有些数据需要根据Excel表格里面的数据进行一些调整,功能应该比较简单.为了学习Pyth

定时运行Python脚本(下载数据)

阿里云对象存储通过外网下载的数据需要收费,标准型存储的外网流出流量计费方式: 00:00-08:00(闲时):0.25元/GB:8:00-24:00(忙时):0.50元/GB. 如果对数据的时效要(wei)求(le)不(sheng)高(qian),可以做一个Python脚本,每天早上07:00自动运行下载数据. WIN10,Python 3.7.4 准备好调试完成的下载数据脚本 oss_download.py,放到"E:\data"目录下(如果是其他目录,下面文件中的相关地址记得要一起

python脚本批量生成数据

在平时的工作中,经常会遇到造数据,特别是性能测试的时候更是需要大量的数据.如果一条条的插入数据库或者一条条的创建数据,效率未免有点低.如何快速的造大量的测试数据呢?在不熟悉存储过程的情况下,今天给大家介绍一种方法,很简单的也很实用.思路是用python代码写一段小程序,生成一定数量的SQL语句,再把这些SQL语句拷贝黏贴到数据库工具执行SQL即可. 假如有个联系人的学生表student,其表结构为姓名name.学校school.电话telphone.邮箱email. 以Mysq为例子,sql语句

ubuntu下python脚本调用有道词典API实现命令行查词

#!/usr/bin/env python #coding=utf-8 '''   python使用有道词典的API来实现命令行查词 ''' import urllib2 import json import sys  reload(sys) sys.setdefaultencoding('utf-8') key = '1096888977' keyfrom = 'bloketest' doctype = 'json' u = 'http://fanyi.youdao.com/openapi.d

CentOS 6 用SVN自动提交文件到web服务器

关于 svn 的安装 参考:[转]Linux(centOS6.5)下SVN的安装.配置及开机启动 经过两天的各种尝试总算解决了,总结如下: 1.在建立库时注意 要让库的名称和  要同步的 web目录名称相同(避免麻烦) 2.在web 目录的上层目录首先  运行命令: svn co(checkout) svn://127.0.0.1/website   checkout 出文库 (我的svn和web在同一服务器) 3.进入 库目录  配置好 conf下的用户名和密码 4.进入 hook目录 vim

Django项目:CMDB(服务器硬件资产自动采集系统)--11--07CMDB文件模式测试采集硬件数据

1 #settings.py 2 # --------01CMDB获取服务器基本信息-------- 3 import os 4 5 BASEDIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))##当前路径 6 7 # 采集资产的方式,选项有:agent(默认), salt, ssh 8 MODE = 'agent' 9 10 # --------01CMDB获取服务器基本信息-------- 11 12 # ----

sybase代理表 跨服务器数据同步

sybase ASE 代理表  跨服务器数据同步 之前双做了sybase服务器数据同步,使用的代理表.近期更换server1,一开始安装sybase时本地服务器名不同,server1的数据直接dump,完成后可以读取数据,但在执行代理表数据插入本地表中时报错.查询后 select @@servername 本地名为db3 查询原本地服务器名为charge 删除原名 sp_dropserver db3 设置新名,即原server1名 sp_addserver charge,local 重启syba

dataTables的学习笔记 -- 未开启服务器数据模式

官方网站:http://www.datatables.net/ (1)未开启服务器数据模式(即"bServerSide" : false),数据会从后台直接全部获取,然后在前台全部渲染,分页是框架自己完成的. (2)开启服务器数据模式(即"bServerSide" : true),数据从后台查询,接着在前台将查询到的所有数据全部渲染到一页上,所以需要在后台分页后传到前台. bServerSide的值默认为false. 建议:在数据量非常大的情况下建议在后台分页,即开

django 将表数据通过API展示到页面上(转)

需求: 我在learn这个app下创建了两张表,其中一个表为user,我希望通过API,在页面是展示这些数据,当用户访问指定的url时,将表中所有对象展示到页面上. 先看learn/models.py文件代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #coding:utf8 from django.db import models class Group(models.Model):     Name = models.CharField(max_le