python tornado使用流生成图片的例子
作者:自由自在梦在何方 发布时间:2023-08-24 07:07:20
标签:python,tornado,生成图片
监控中,通常要使用图片更直观的看出集群的运行状况。
以下是一个简单的demo,通过rrdtool生成动态的图片。Python3, tornado.
web.py
templates/index.html
import tornado.ioloop
import tornado.web
import os
import io
import os
from PIL import Image
from tornado.options import define, options, parse_command_line
from tornado.web import RequestHandler
class PicHandles(RequestHandler):
def get(self):
id = self.get_argument('id')
pic = open('F:/soft_bak/'+id+'.png', 'rb')
pics = pic.read()
self.write(pics)
self.set_header("Content-type", "image/png")
class GetPicHandles(RequestHandler):
def get(self):
self.render("index.html")
def create_rrdtool_pic():
# os.system("/usr/bin/rrdtool graph /tmp/a.png --start '-3600s' --end now --width 400 --height 100 --title ' Grid Grid last hour last hour' --vertical-label load_one --slope-mode DEF:'sum'='/var/lib/ganglia/rrds/cluster/__SummaryInfo__/load_one.rrd:sum':AVERAGE AREA:'sum'#555555:' ' CDEF:sum_pos=sum,0,LT,0,sum,IF VDEF:sum_last=sum_pos,LAST VDEF:sum_min=sum_pos,MINIMUM VDEF:sum_avg=sum_pos,AVERAGE VDEF:sum_max=sum_pos,MAXIMUM GPRINT:'sum_last':'Now\:%7.2lf%s' GPRINT:'sum_min':'Min\:%7.2lf%s' GPRINT:'sum_avg':'Avg\:%7.2lf%s' GPRINT:'sum_max':'Max\:%7.2lf%s\l' ")
img = Image.open("F:/soft_bak/a.png")
return img, ""
class GenPicHandler(tornado.web.RequestHandler):
def get(self, *args, **kwargs):
imgio=io.BytesIO()
img,code=create_rrdtool_pic()
img.save(imgio,'PNG')
self.set_header('Content-Type', 'image/png')
self.write(imgio.getvalue())
define('port', default = 9900, type = int,)
def main():
parse_command_line()
app = tornado.web.Application(
[
(r"/pic", PicHandles),
(r"/getPic", GetPicHandles),
(r"/getGenPic", GenPicHandler),
],
debug=True,
default_host="0.0.0.0",
template_path=os.path.join(os.path.dirname(__file__), "templates")
)
app.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
if __name__ =='__main__':
main()
<!DOCTYPE html>
<html>
<head><title>Poem Maker Pro</title></head>
<body>
<a href="./pic?id=aa" rel="external nofollow" >
<img src="./pic?id=a"
alt="{$source.name} NETWORK" border="0" />
</a>
</body>
</html>
来源:https://blog.csdn.net/lifestxx/article/details/78662432


猜你喜欢
- 关于带权随机数为了帮助理解,先来看三类随机问题的对比:1.已有n条记录,从中选取m条记录,选取出来的记录前后顺序不管。实现思路:按行遍历所有
- 语法df.drop_duplicates(subset = None,
- 在通过scrapy框架进行某些网站数据爬取的时候,往往会碰到页面动态数据加载的情况发生,如果直接使用scrapy对其url发请求,是绝对获取
- 02条件语句和while循环三目运算a = 6#原判断语句if a > 5:print(True)else:print(False)#
- 前言栈、队列和优先级队列都是非常基础的数据结构。Python作为一种“编码高效”的语言,对这些基础的数据结构都有比较好的实现。在业务需求开发
- 由于工作的需求,需要用python做一个类似网络爬虫的采集器。虽然Python的urllib模块提供更加方便简洁操作,但是涉及到一些底层的需
- 先看效果,实现一个图片左右摇动,在一般的H5宣传页,商家活动页面我们会看到这样的动画,小程序的动画效果不同于css3动画效果,是通过js来完
- 这篇文章收集了我在Python新手开发者写的代码中所见到的不规范但偶尔又很微妙的问题。本文的目的是为了帮助那些新手开发者渡过写出丑陋的Pyt
- 在具体数据的选取上,我爬取的是各省份降水量实时数据话不多说,开始实操正文 1.爬取数据使用python爬虫,爬取中国天气网各省份2
- 写在前面:在上一篇文章中介绍了栈这个数据结构,这篇文章介绍一下队列。什么是队列?队列是一种先进先出的数据结构,队列中允许两种基础操作,也就是
- 设计网站的同志背景主要有两种:学计算机、学艺术。基本上会写代码的不懂设计,会设计的不懂代码,这个格局似乎到今天还没变。某些学计算机的同学,有
- 最近由于业务的原因,需要在Web端页面接入调试各类的网络摄像头,遇到了很多匪夷所思的问题(说的就是读得出摄像头的品牌,读不出摄像头的分辨率)
- import pyperclipimport pyautogui# PyAutoGUI中文输入需要用粘贴实现# Py
- 本文实例讲述了python实现自动更换ip的方法。分享给大家供大家参考。具体实现方法如下:#!/usr/bin/env python#-*-
- 这是内部的一个邮件记录,分享出来听下业内同行的声音。事情是这样的..==先是 A 推荐了白鸦的推到内部群:“设计师们一定要养成一个习惯:无论
- 本文实例讲述了js实现的xml对象转json功能。分享给大家供大家参考,具体如下:支持无限级别xml结构对象转json,并且支持任意标签属性
- 第一章:日志管理 1.forcing log switchessql> alter system switch logfile;2.f
- 实战场景本篇博客为大家介绍一款新的自动化测试工具,效果类似 selenium,但是这个模块年轻。模块名称为 playwright-pytho
- 一道Python课作业题,大致如下:编写一个类:该类Building应具有以下方法:●一个构造函数,它根本不接受任何参数(除了通常的`sel
- 拖拽功能主要是用在让用户做一些自定义的动作,比如拖动排序,弹出框拖动移动等等拖拽的流程动作1、鼠标按下 会触发onmousedown事件2、