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写的创建文件夹自定义函数mkdir()
Aug 25 Python
Python实现通过文件路径获取文件hash值的方法
Apr 29 Python
Python之自动获取公网IP的实例讲解
Oct 01 Python
Python 爬取携程所有机票的实例代码
Jun 11 Python
python点击鼠标获取坐标(Graphics)
Aug 10 Python
django创建超级用户过程解析
Sep 18 Python
Python如何实现强制数据类型转换
Nov 22 Python
TensorFlow 显存使用机制详解
Feb 03 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
Oct 04 Python
Python os库常用操作代码汇总
Nov 03 Python
PyTorch的Debug指南
May 07 Python
python源码剖析之PyObject详解
May 18 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
日本十大惊悚动漫
2020/03/04 日漫
在php和MySql中计算时间差的方法
2011/04/22 PHP
php调用KyotoTycoon简单实例
2015/04/02 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
2016/12/14 PHP
js indexOf()定义和用法
2012/10/21 Javascript
浅谈javascript 归并方法
2015/01/21 Javascript
js+css实现导航效果实例
2015/02/10 Javascript
nodejs事件的监听与触发的理解分析
2015/02/12 NodeJs
JavaScript原生对象之String对象的属性和方法详解
2015/03/13 Javascript
jquery中radio checked问题
2015/03/16 Javascript
对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解
2016/04/11 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
谈谈第三方App接入微信登录 解读
2016/12/27 Javascript
JQuery中Ajax的操作完整例子
2017/03/07 Javascript
浅谈Vue.js 组件中的v-on绑定自定义事件理解
2017/11/17 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
Vue实现内部组件轮播切换效果的示例代码
2018/04/07 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
npx create-react-app xxx创建项目报错的解决办法
2020/02/17 Javascript
python实现从字典中删除元素的方法
2015/05/04 Python
python开发之文件操作用法实例
2015/11/13 Python
python正则表达式re之compile函数解析
2017/10/25 Python
Python递归实现汉诺塔算法示例
2018/03/19 Python
python文本数据处理学习笔记详解
2019/06/17 Python
Django 自定义分页器的实现代码
2019/11/24 Python
Python Numpy 自然数填充数组的实现
2019/11/28 Python
python中reload重载实例用法
2020/12/15 Python
css3类选择器之结合元素选择器和多类选择器用法
2017/03/09 HTML / CSS
香港万宁官方海外旗舰店:香港健与美连锁店
2018/09/27 全球购物
动态密码技术
2012/10/18 面试题
教师申诉制度
2014/01/29 职场文书
幼儿教师研修感言
2014/02/12 职场文书
社区工作感言
2014/02/21 职场文书
服务宗旨标语
2014/07/01 职场文书