栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

定期更新和渲染Flask中的值

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

定期更新和渲染Flask中的值

使用Ajax请求

Python

@app.route('/_stuff', methods= ['GET'])def stuff():    cpu=round(getCpuLoad())    ram=round(getVmem())    disk=round(getDisk())    return jsonify(cpu=cpu, ram=ram, disk=disk)

Javascript

function update_values() { $script_ROOT = {{ request.script_root|tojson|safe }}; $.getJSON($script_ROOT+"/_stuff",     function(data) {         $("#cpuload").text(data.cpu+" %")         $("#ram").text(data.ram+" %")         $("#disk").text(data.disk+" %")     });        }

使用Websockets

project/app/views/request/websockets.py

# -*- coding: utf-8 -*-# OS importsimport json# Local importsfrom app import socketsfrom app.functions import get_cpu_load, get_disk_usage, get_vmem@sockets.route('/_socket_system')def socket_system(ws):    """    Returns the system informations, JSON Format    CPU, RAM, and Disk Usage    """    while True:        message = ws.receive()        if message == "update": cpu = round(get_cpu_load()) ram = round(get_vmem()) disk = round(get_disk_usage()) ws.send(json.dumps(dict(received=message, cpu=cpu, ram=ram, disk=disk)))        else: ws.send(json.dumps(dict(received=message)))

project/app/__init__.py

# -*- coding: utf-8 -*-from flask import Flaskfrom flask_sockets import Socketsapp = Flask(__name__)sockets = Sockets(app)app.config.from_object('config')from app import views

使用Flask-Websockets使我的生活更加轻松。这是启动器:

launchwithsockets.sh

#!/bin/shgunicorn -k flask_sockets.worker app:app

请注意,我没有使用socket.io之类的东西,这就是代码很长的原因。此代码还尝试定期重新连接到服务器,并且可以停止尝试通过用户操作重新连接。我使用Messenger库来通知用户出现问题。当然,这比使用socket.io要复杂一些,但是我非常喜欢对客户端进行编码。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/398645.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号