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端就是这样的



本文转自 xxl714 51CTO博客,原文链接:http://blog.51cto.com/dreamgirl1314/2044918,如需转载请自行联系原作者

相关文章
|
20小时前
|
数据采集 Web App开发 数据处理
一步步教你用Python Selenium抓取动态网页任意行数据
使用Python Selenium爬取动态网页,结合代理IP提升抓取效率。安装Selenium,配置代理(如亿牛云),设置User-Agent和Cookies以模拟用户行为。示例代码展示如何使用XPath提取表格数据,处理异常,并通过隐式等待确保页面加载完成。代理、模拟浏览器行为和正确配置增强爬虫性能和成功率。
一步步教你用Python Selenium抓取动态网页任意行数据
|
23小时前
|
Python
Python+Jinja2实现接口数据批量生成工具
在做接口测试的时候,我们经常会遇到一种情况就是要对接口的参数进行各种可能的校验,手动修改很麻烦,尤其是那些接口参数有几十个甚至更多的,有没有一种方法可以批量的对指定参数做生成处理呢。
10 3
|
1天前
|
数据采集 机器学习/深度学习 搜索推荐
Python第一章(图片与API接口)
Python第一章(图片与API接口)
|
1天前
|
存储 JSON JavaScript
【chat-gpt问答记录】python将数据存为json格式和yaml格式
【chat-gpt问答记录】python将数据存为json格式和yaml格式
12 1
|
1天前
|
Python
【代码】Python实现Excel数据合并
【代码】Python实现Excel数据合并
7 0
|
1天前
|
存储 索引 Python
Python基础第五篇(Python数据容器)
Python基础第五篇(Python数据容器)
|
2天前
|
API Python
使用Python获取HTTP请求头数据
在Python Web开发中,`requests`库用于发送HTTP请求,请求头是关键元素,包含客户端信息和请求详情。要查看请求头,先创建`Request`对象,打印其`headers`属性,然后使用`get`等方法发送请求并获取响应头。别忘了处理不同HTTP方法、内容类型以及异常。使用`Session`管理会话状态,并考虑日志记录以调试。通过控制请求头,能有效与服务器通信。
12 0
|
2天前
|
前端开发 数据库 Python
Python Django项目下的分页和筛选查询
在Django中实现分页功能,视图函数通过`Paginator`处理数据,每页显示10条记录。URL配置支持带参数和不带参数的分页请求。前端模板使用for循环展示分页数据,包括商品信息和状态按钮,并利用分页组件导航。筛选查询视图根据GET请求的`state`参数过滤上架或下架产品,同样实现分页功能。前端添加状态选择下拉框,分页链接携带查询参数`state`确保筛选状态在翻页时保持。
|
2天前
|
存储 JavaScript 前端开发
Python Django下的实现注册验证码
摘要: 使用Python生成随机验证码图像,包括干扰线和噪点,保存到静态文件夹,并将验证码文本存储到数据库。数据库表包含ID、验证码图片路径和验证码文本。JavaScript函数`getRandomInt`生成1到300的随机数,用于请求对应数据库条目的验证码和图片。XMLHttpRequest发送POST请求到服务器,视图函数返回指定ID的验证码图片路径,实现验证码的动态刷新。
|
2天前
|
XML 前端开发 数据挖掘
Web数据提取:Python中BeautifulSoup与htmltab的结合使用
Web数据提取:Python中BeautifulSoup与htmltab的结合使用