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 datetime时间格式化去掉前导0
Jul 31 Python
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
Mar 30 Python
python 拼接文件路径的方法
Oct 23 Python
pip安装python库的方法总结
Aug 02 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
Aug 30 Python
python使用pip安装SciPy、SymPy、matplotlib教程
Nov 20 Python
python标准库sys和OS的函数使用方法与实例详解
Feb 12 Python
keras 自定义loss model.add_loss的使用详解
Jun 22 Python
Python3爬虫关于识别点触点选验证码的实例讲解
Jul 30 Python
vscode+PyQt5安装详解步骤
Aug 12 Python
matplotlib相关系统目录获取方式小结
Feb 03 Python
pytorch 如何使用float64训练
May 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中读取文件的几个方法总结(推荐)
2016/06/03 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
今天是星期几的4种JS代码写法
2013/09/17 Javascript
ExtJS[Desktop]实现图标换行示例代码
2013/11/17 Javascript
javascript实现的图片切割多块效果实例
2015/05/07 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
2017/09/07 jQuery
JavaScript实现数值自动增加动画
2017/12/28 Javascript
npm 下载指定版本的组件方法
2018/05/17 Javascript
微信小程序实现简单表格
2019/02/14 Javascript
Vue Element UI + OSS实现上传文件功能
2019/07/31 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
javascript设计模式之迭代器模式
2020/01/30 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
Python常用列表数据结构小结
2014/08/06 Python
详解Django框架中用户的登录和退出的实现
2015/07/23 Python
Python零基础入门学习之输入与输出
2019/04/03 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
python动态视频下载器的实现方法
2019/09/16 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
python paramiko远程服务器终端操作过程解析
2019/12/14 Python
tensorflow实现从.ckpt文件中读取任意变量
2020/05/26 Python
HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
2013/07/04 HTML / CSS
html5 横向滑动导航栏的方法示例
2020/05/08 HTML / CSS
英超联赛的首选足球:Mitre足球
2019/05/06 全球购物
荷兰天然和有机产品网上商城:BigGreenSmile.nl
2020/07/26 全球购物
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
个人简历的自荐信
2013/10/23 职场文书
财务专业大学生职业生涯规划范文
2013/12/30 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
文明礼仪主题班会
2015/08/13 职场文书
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android