利用js动态处理json数据,图表实时显示增量数据,代码之前测试可以正常显示,现在又不可以了,求指点
Data
是不是5s刷新一次写错了?
#!/usr/bin/env python
# coding=utf-8
from flask import Flask,render_template,request
from mod import app,db,Cpu
import json
cx_time = 0
@app.route('/')
def index():
cpu = Cpu.query.all()
return render_template('index.html',cpu=cpu)
@app.route('/api/')
def api(name):
if name=='data':
q=request.args['q']
global cx_time
if cx_time > 0:
qname = Cpu.query.filter(Cpu.time > cx_time / 1000).all()
else:
qname = Cpu.query.all()
arr = []
for i in qname:
if q=='user':
arr.append([i.time*1000,i.user])
elif q=='system':
arr.append([i.time*1000,i.system])
elif q=='idle':
arr.append([i.time*1000,i.idle])
if len(arr)>0:
cx_time=arr[-1][0]
#cx_time=0
#cx_time=0
return json.dumps(arr)
@app.route('/data')
def data():
global cx_time
if cx_time > 0:
cpu = Cpu.query.filter(Cpu.time > cx_time/1000 ).all()
else:
cpu = Cpu.query.all()
arr = []
for i in cpu:
arr.append([i.time*1000,i.user])
if len(arr)>0:
cx_time =arr[-1][0]
return json.dumps(arr)
if __name__ == '__main__':
app.run(host='0.0.0.0',port=5000,debug=True)
#!/usr/bin/env python
# coding=utf-8
from flask import Flask,render_template
from flask_sqlalchemy import SQLAlchemy
import os
basedir = os.path.abspath(os.path.dirname(__file__))
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'data.sqlite')
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)
class Cpu(db.Model):
user = db.Column(db.Float,primary_key=True)
system = db.Column(db.Float)
idle = db.Column(db.Float)
time = db.Column(db.Integer)
def __init__(self,user,system,idle,time):
self.user = user
self.system = system
self.idle = idle
self.time = time
def __repr__(self):
return '{0} {1}'.format(self.user,self.time)
#!/usr/bin/env python
# coding=utf-8
import time
import psutil
from mod import db,Cpu
db.create_all()
def getCpu():
info = psutil.cpu_times()
data = []
data.append(info.user)
data.append(info.system)
data.append(info.idle)
cpu=Cpu(user=data[0],system=data[1],idle=data[2],time=int(time.time()))
db.session.add(cpu)
db.session.commit()
while True:
time.sleep(5)
getCpu()
代码如上,之前测试还可以的

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
个人测过没有报错,请问楼主,现在又不可以了是什么意思?