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生成url短链接的方法
May 04 Python
Python处理JSON数据并生成条形图
Aug 05 Python
Pycharm学习教程(5) Python快捷键相关设置
May 03 Python
浅谈python import引入不同路径下的模块
Jul 11 Python
python删除某个字符
Mar 19 Python
python实现祝福弹窗效果
Apr 07 Python
python函数与方法的区别总结
Jun 23 Python
Python常用数据类型之间的转换总结
Sep 06 Python
python lambda表达式(匿名函数)写法解析
Sep 16 Python
Django models文件模型变更错误解决
May 11 Python
Pyinstaller打包Scrapy项目的实现步骤
Sep 22 Python
Django haystack实现全文搜索代码示例
Nov 28 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生成扭曲及旋转的验证码图片
2013/06/07 PHP
php数组去重实例及分析
2013/11/26 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
使用Javascript接收get传递的值的代码
2011/11/30 Javascript
javascript 面向对象封装与继承
2014/11/27 Javascript
jQuery提示插件alertify使用指南
2015/04/21 Javascript
基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
2016/03/07 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
jQuery validata插件实现方法
2017/06/25 jQuery
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
浅谈Vue项目骨架屏注入实践
2019/08/05 Javascript
antd table按表格里的日期去排序操作
2020/11/17 Javascript
[01:20]DOTA2更新全新英雄 天涯墨客现已加入游戏
2018/08/25 DOTA
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
python生成二维码的实例详解
2017/10/29 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
2018/04/20 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
Python 爬虫实现增加播客访问量的方法实现
2019/10/31 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
Pycharm pyuic5实现将ui文件转为py文件,让UI界面成功显示
2020/04/08 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
2020/11/25 Python
python 将Excel转Word的示例
2021/03/02 Python
快速一键生成Python爬虫请求头
2021/03/04 Python
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
HMV日本官网:全球知名的音乐、DVD和电脑游戏零售巨头
2016/08/13 全球购物
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
雏鹰争章活动总结
2014/05/09 职场文书
初中政治教学工作总结
2015/08/13 职场文书
小学语文新课改心得体会
2016/01/22 职场文书
vue实现列表垂直无缝滚动
2022/04/08 Vue.js
python语言中pandas字符串分割str.split()函数
2022/08/05 Python