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实现的可以拷贝或剪切一个文件列表中的所有文件
Apr 30 Python
使用python开发vim插件及心得分享
Nov 04 Python
Python过滤列表用法实例分析
Apr 29 Python
python 循环while和for in简单实例
Aug 16 Python
Python随机生成手机号、数字的方法详解
Jul 21 Python
numpy.delete删除一列或多列的方法
Apr 03 Python
python 随机森林算法及其优化详解
Jul 11 Python
django和vue实现数据交互的方法
Aug 21 Python
pytorch 实现查看网络中的参数
Jan 06 Python
Django ORM 查询表中某列字段值的方法
Apr 30 Python
Selenium之模拟登录铁路12306的示例代码
Jul 31 Python
linux中nohup和后台运行进程查看及终止
Jun 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常用编译参数中文说明
2014/09/27 PHP
CodeIgniter视图使用注意事项
2016/01/20 PHP
php字符串操作常见问题小结
2016/10/11 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
2017/06/19 PHP
THINKPHP5分页数据对象处理过程解析
2020/10/28 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
Extjs4 关于Store的一些操作(加载/回调/添加)
2013/04/18 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
谷歌地图打不开的解决办法
2014/08/07 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
详解jQuery Mobile自定义标签
2016/01/06 Javascript
Bootstrap源码解读网格系统(3)
2016/12/22 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
微信小程序实现人脸识别
2018/05/25 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
js获取form表单中name属性的值
2019/02/27 Javascript
[01:00:30]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第二场 10.31
2020/11/02 DOTA
python字典的常用操作方法小结
2016/05/16 Python
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
Python JSON格式数据的提取和保存的实现
2019/03/22 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
python 读取更新中的log 或其它文本方式
2019/12/24 Python
Jupyter加载文件的实现方法
2020/04/14 Python
Django创建一个后台的基本步骤记录
2020/10/02 Python
西班牙在线宠物食品和配件商店:bitiba
2019/10/11 全球购物
会计系毕业个人自荐信格式
2013/09/23 职场文书
银行见习期自我鉴定
2014/01/29 职场文书
卫生系统先进事迹
2014/05/13 职场文书
学校先进集体事迹材料
2014/05/31 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
幼儿园个人总结
2015/02/28 职场文书
公司前台接待岗位职责
2015/04/03 职场文书
解析python中的jsonpath 提取器
2022/01/18 Python
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers