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模拟登陆淘宝并统计淘宝消费情况的代码实例分享
Jul 04 Python
Python正规则表达式学习指南
Aug 02 Python
Selenium定位元素操作示例
Aug 10 Python
Python3.5常见内置方法参数用法实例详解
Apr 29 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
Jun 19 Python
Python参数类型以及常见的坑详解
Jul 08 Python
python scrapy爬虫代码及填坑
Aug 12 Python
Python Tensor FLow简单使用方法实例详解
Jan 14 Python
利用Pytorch实现简单的线性回归算法
Jan 15 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
Feb 09 Python
Python更新所有已安装包的操作
Feb 13 Python
Python语言编写智力问答小游戏功能
Oct 13 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利用COM对象访问SQLServer、Access
2006/10/09 PHP
php 多关键字 高亮显示实现代码
2012/04/23 PHP
php更新mysql后获取改变行数的方法
2014/12/25 PHP
php抽象方法和抽象类实例分析
2016/12/07 PHP
jQuery文本框(input textare)事件绑定方法教程
2013/04/24 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
jQuery中的height innerHeight outerHeight区别示例介绍
2014/06/15 Javascript
jQuery的:parent选择器定义和用法
2014/07/01 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
Node.js中使用socket创建私聊和公聊聊天室
2015/11/19 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
jQuery动态生成不规则表格(前后端)
2017/02/21 Javascript
vue的mixins属性详解
2018/03/14 Javascript
浅谈Express.js解析Post数据类型的正确姿势
2019/05/30 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
2021/02/23 Vue.js
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
python 算法 排序实现快速排序
2012/06/05 Python
python概率计算器实例分析
2015/03/25 Python
Python2.x与Python3.x的区别
2016/01/14 Python
python opencv实现任意角度的透视变换实例代码
2018/01/12 Python
Python hashlib模块用法实例分析
2018/06/12 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
python用post访问restful服务接口的方法
2018/12/07 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
Gap加拿大官网:Gap Canada
2017/08/24 全球购物
介绍一下JMS编程步骤
2015/09/22 面试题
群众路线专项整治方案
2014/10/27 职场文书
党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
锅炉工岗位职责
2015/02/13 职场文书
地道战观后感2000字
2015/06/04 职场文书
2019公司管理制度
2019/04/19 职场文书