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实现类似ftp传输文件的网络程序示例
Apr 08 Python
Python3基础之基本运算符概述
Aug 13 Python
Python实现建立SSH连接的方法
Jun 03 Python
python检查指定文件是否存在的方法
Jul 06 Python
python查看zip包中文件及大小的方法
Jul 09 Python
举例讲解Django中数据模型访问外键值的方法
Jul 21 Python
Python的Django中将文件上传至七牛云存储的代码分享
Jun 03 Python
使用Python的Django和layim实现即时通讯的方法
May 25 Python
基于Python的ModbusTCP客户端实现详解
Jul 13 Python
python实现两张图片拼接为一张图片并保存
Jul 16 Python
Django 对IP访问频率进行限制的例子
Aug 30 Python
python如何利用cv2.rectangle()绘制矩形框
Dec 24 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&amp;mysql(四)
2006/10/09 PHP
mysql 全文搜索 技巧
2007/04/27 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
使用PHP开发留言板功能
2019/11/19 PHP
js 静态动态成员 and 信息的封装和隐藏
2011/05/29 Javascript
jQuery之尺寸调整组件的深入解析
2013/06/19 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
JS获取url链接字符串 location.href
2013/12/23 Javascript
javascript实现显示和隐藏div方法汇总
2015/08/14 Javascript
Bootstrap媒体对象的实现
2016/05/01 Javascript
jQuery滚动监听实现商城楼梯式导航效果
2017/03/06 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
2017/03/30 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
vue侧边栏动态生成下级菜单的方法
2018/09/07 Javascript
react项目如何使用iconfont的方法步骤
2019/03/13 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
[02:10]DOTA2亚洲邀请赛 EG战队出场宣传片
2015/02/07 DOTA
详解python中xlrd包的安装与处理Excel表格
2016/12/16 Python
python将处理好的图像保存到指定目录下的方法
2019/01/10 Python
pyqt5使用按钮进行界面的跳转方法
2019/06/19 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
Python通过Pillow实现图片对比
2020/04/29 Python
Python 如何实现访问者模式
2020/07/28 Python
Python使用pickle进行序列化和反序列化的示例代码
2020/09/22 Python
Python生成pdf目录书签的实例方法
2020/10/29 Python
Django自带的用户验证系统实现
2020/12/18 Python
美国办公用品折扣网站:Shoplet.com
2019/11/24 全球购物
类的返射机制中的包及核心类
2016/09/12 面试题
我的五年职业生涯规划
2014/01/23 职场文书
房屋产权证明书
2014/10/15 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
公务员处分决定书
2015/06/25 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
2016年世界艾滋病日宣传活动总结
2016/04/01 职场文书
2019同学聚会主持词
2019/05/06 职场文书
Spring Data JPA的Audit功能审计数据库的变更
2021/06/26 Java/Android