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开发的nosql数据库CodernityDB介绍和使用实例
Oct 23 Python
Python编程中的文件读写及相关的文件对象方法讲解
Jan 19 Python
python使用matplotlib绘制折线图教程
Feb 08 Python
OpenCV实现人脸识别
Apr 07 Python
python数据结构学习之实现线性表的顺序
Sep 28 Python
用Python获取摄像头并实时控制人脸的实现示例
Jul 11 Python
解决Django中调用keras的模型出现的问题
Aug 07 Python
Python + Requests + Unittest接口自动化测试实例分析
Dec 12 Python
OpenCV哈里斯(Harris)角点检测的实现
Jan 15 Python
Keras使用tensorboard显示训练过程的实例
Feb 15 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
Mar 03 Python
Python eval函数介绍及用法
Nov 09 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 session安全问题分析
2011/06/24 PHP
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
2012/02/05 PHP
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
2016/07/09 PHP
php微信公众号开发模式详解
2016/11/28 PHP
用roll.js实现的图片自动滚动+鼠标触动的特效
2007/03/18 Javascript
Jquery实现遮罩层的方法
2015/06/08 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
JS如何设置iOS中微信浏览器的title
2016/11/22 Javascript
vue watch深度监听对象实现数据联动效果
2018/08/16 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
如何让node运行es6模块文件及其原理详解
2018/12/11 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
js字符串处理之绝妙的代码
2019/04/05 Javascript
原生javascript自定义input[type=radio]效果示例
2019/08/27 Javascript
weui上传多图片,压缩,base64编码的示例代码
2020/06/22 Javascript
[04:46]2018年度玩家喜爱的电竞媒体-完美盛典
2018/12/16 DOTA
python中实现精确的浮点数运算详解
2017/11/02 Python
分析python动态规划的递归、非递归实现
2018/03/04 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
Python配置文件处理的方法教程
2019/08/29 Python
python实现指定ip端口扫描方式
2019/12/17 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
关于python 跨域处理方式详解
2020/03/28 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
python实现学生管理系统开发
2020/07/24 Python
Linux管理员面试题 Linux admin interview questions
2014/11/01 面试题
2014植树节活动总结
2014/03/11 职场文书
核心价值观演讲稿
2014/05/13 职场文书
财务工作疏忽检讨书
2014/09/11 职场文书
团队拓展训练心得体会
2016/01/12 职场文书
解析python中的jsonpath 提取器
2022/01/18 Python
Vue2项目中对百度地图的封装使用详解
2022/06/16 Vue.js