python tornado使用流生成图片的例子


Posted in Python onNovember 18, 2019

监控中,通常要使用图片更直观的看出集群的运行状况。

以下是一个简单的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>

以上这篇python tornado使用流生成图片的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python3 伪装浏览器的方法示例
Nov 23 Python
详解Python 协程的详细用法使用和例子
Jun 15 Python
利用python实现对web服务器的目录探测的方法
Feb 26 Python
详解Python sys.argv使用方法
May 10 Python
python五子棋游戏的设计与实现
Jun 18 Python
浅谈Python3实现两个矩形的交并比(IoU)
Jan 18 Python
python对XML文件的操作实现代码
Mar 27 Python
基于Python共轭梯度法与最速下降法之间的对比
Apr 02 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
May 24 Python
python 解决Windows平台上路径有空格的问题
Nov 10 Python
通过python-pptx模块操作ppt文件的方法
Dec 26 Python
pycharm 配置svn的图文教程(手把手教你)
Jan 15 Python
解决pandas展示数据输出时列名不能对齐的问题
Nov 18 #Python
python 实现绘制整齐的表格
Nov 18 #Python
wxPython色环电阻计算器
Nov 18 #Python
Python模拟登录之滑块验证码的破解(实例代码)
Nov 18 #Python
Python django搭建layui提交表单,表格,图标的实例
Nov 18 #Python
使用Django搭建一个基金模拟交易系统教程
Nov 18 #Python
wxPython实现文本框基础组件
Nov 18 #Python
You might like
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
PHP syntax error, unexpected $end 错误的一种原因及解决
2008/10/25 PHP
php2html php生成静态页函数
2008/12/08 PHP
PHP gbk环境下json_dencode传送来的汉字
2012/11/13 PHP
PHP按行读取文件时删除换行符的3种方法
2014/05/04 PHP
php使用curl出现Expect:100-continue解决方法
2015/03/03 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
2015/04/20 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
php实现的中文分词类完整实例
2017/02/06 PHP
input 输入框内的输入事件详细分析
2010/03/17 Javascript
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
获取body标签的两种方法
2011/10/13 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
JQuery中SetTimeOut传参问题探讨
2013/05/10 Javascript
javascript设置连续两次点击按钮时间间隔的方法
2014/10/28 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
2015/02/13 Javascript
js获取当前日期前七天的方法
2015/02/28 Javascript
三种AngularJS中获取数据源的方式
2016/02/02 Javascript
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
2016/11/22 Javascript
利用js给datalist或select动态添加option选项的方法
2018/01/25 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
2018/09/15 Javascript
javaScript中indexOf用法技巧
2019/11/26 Javascript
javascript实现贪吃蛇游戏(娱乐版)
2020/08/17 Javascript
Python随机生成数模块random使用实例
2015/04/13 Python
玩转python爬虫之URLError异常处理
2016/02/17 Python
python3中os.path模块下常用的用法总结【推荐】
2018/09/16 Python
在python中pandas读文件,有中文字符的方法
2018/12/12 Python
西班牙床垫网上商店:Colchones.es
2018/05/06 全球购物
25道Java面试题集合
2013/05/21 面试题
大学四年学习的自我评价分享
2013/12/09 职场文书
体育系毕业生自荐信
2014/06/28 职场文书
2016年元旦寄语
2015/08/17 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
DE1103使用报告
2022/04/05 无线电
Python用any()函数检查字符串中的字母以及如何使用all()函数
2022/04/14 Python