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 相关文章推荐
对python的文件内注释 help注释方法
May 23 Python
python 使用正则表达式按照多个空格分割字符的实例
Dec 20 Python
Python3 单行多行万能正则匹配方法
Jan 07 Python
基于python实现KNN分类算法
Apr 23 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
Jun 17 Python
基于spring boot 日志(logback)报错的解决方式
Feb 20 Python
django修改models重建数据库的操作
Mar 31 Python
用 Python 制作地球仪的方法
Apr 24 Python
python实现逢七拍腿小游戏的思路详解
May 26 Python
Python接口自动化测试的实现
Aug 28 Python
scrapy结合selenium解析动态页面的实现
Sep 28 Python
python 实时调取摄像头的示例代码
Nov 25 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
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
PHP7.3.10编译安装教程
2019/10/08 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
javascript textContent与innerText的异同分析
2010/10/22 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
究竟什么是Node.js?Node.js有什么好处?
2015/05/29 Javascript
jQuery实现的右下角广告窗体跟随效果示例
2016/09/16 Javascript
JS实现合并json对象的方法
2017/10/10 Javascript
手把手教你使用vue-cli脚手架(图文解析)
2017/11/08 Javascript
小程序云开发实战小结
2018/10/25 Javascript
nuxt.js中间件实现拦截权限判断的方法
2018/11/21 Javascript
Angular2使用SVG自定义图表(条形图、折线图)组件示例
2019/05/10 Javascript
Vue对象赋值视图不更新问题及解决方法
2019/06/03 Javascript
layui 富文本图片上传接口与普通按钮 文件上传接口的例子
2019/09/23 Javascript
Windows下为Python安装Matplotlib模块
2015/11/06 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
python十进制和二进制的转换方法(含浮点数)
2018/07/07 Python
pygame实现简易飞机大战
2018/09/11 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
2019/06/12 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
pygame实现俄罗斯方块游戏(基础篇3)
2019/10/29 Python
python3实现网页版raspberry pi(树莓派)小车控制
2020/02/12 Python
详解用 python-docx 创建浮动图片
2021/01/24 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
中医临床专业自我鉴定范文
2014/01/15 职场文书
学生干部的自我评价分享
2014/01/18 职场文书
超市商业计划书
2014/05/04 职场文书
阅兵口号
2014/06/19 职场文书
中学生社会实践活动总结
2014/07/03 职场文书
学位证书委托书
2014/09/30 职场文书
2014年妇产科工作总结
2014/12/08 职场文书
办公室管理规章制度
2015/08/04 职场文书
CSS3常见动画的实现方式
2021/04/14 HTML / CSS