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 相关文章推荐
pyqt4教程之实现半透明的天气预报界面示例
Mar 02 Python
python自动化测试之从命令行运行测试用例with verbosity
Sep 28 Python
python获取从命令行输入数字的方法
Apr 29 Python
基于python 处理中文路径的终极解决方法
Apr 12 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
Apr 18 Python
Python读取csv文件分隔符设置方法
Jan 14 Python
python 执行终端/控制台命令的例子
Jul 12 Python
django 多对多表的创建和插入代码实现
Sep 09 Python
Flask模板引擎Jinja2使用实例
Apr 23 Python
浅析Python 序列化与反序列化
Aug 05 Python
使用python把xmind转换成excel测试用例的实现代码
Oct 12 Python
python判断all函数输出结果是否为true的方法
Dec 03 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
建立动态的WML站点(三)
2006/10/09 PHP
PHP中动态HTML的输出技术
2006/10/09 PHP
jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
2011/11/15 Javascript
jQuery操作select的实例代码
2012/06/14 Javascript
将Datatable转化成json发送前台实现思路
2013/09/06 Javascript
javascript抽象工厂模式详细说明
2014/12/16 Javascript
js实现鼠标划过给div加透明度的方法
2015/05/25 Javascript
使用Browserify配合jQuery进行编程的超级指南
2015/07/28 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】
2016/05/10 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
2016/12/26 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
jquery 校验中国身份证号码实例详解
2017/04/11 jQuery
vue2.0移除或更改的一些东西(移除index key)
2017/08/28 Javascript
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
2017/12/24 jQuery
Vue.js递归组件构建树形菜单
2017/12/24 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
jquery使用echarts实现有向图可视化功能示例
2019/11/25 jQuery
Vue初始化中的选项合并之initInternalComponent详解
2020/06/11 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
Python3.0与2.X版本的区别实例分析
2014/08/25 Python
详解 Python中LEGB和闭包及装饰器
2017/08/03 Python
python3实现点餐系统
2019/01/24 Python
python3 selenium自动化测试 强大的CSS定位方法
2019/08/23 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
Python3.7实现验证码登录方式代码实例
2020/02/14 Python
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
Crabtree & Evelyn英国官网:瑰珀翠护手霜、香水、沐浴和身体护理
2018/04/26 全球购物
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
建议书的格式
2014/05/12 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
GoLang中生成UUID唯一标识的实现
2021/05/08 Golang
Python 解决空列表.append() 输出为None的问题
2021/05/23 Python
Redis唯一ID生成器的实现
2022/07/07 Redis