python tornado使用流生成图片的例子
监控中,通常要使用图片更直观的看出集群的运行状况。
以下是一个简单的demo,通过rrdtool生成动态的图片。Python3,tornado.
web.py
templates/index.html
importtornado.ioloop importtornado.web importos importio importos fromPILimportImage fromtornado.optionsimportdefine,options,parse_command_line fromtornado.webimportRequestHandler classPicHandles(RequestHandler): defget(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") classGetPicHandles(RequestHandler): defget(self): self.render("index.html") defcreate_rrdtool_pic(): #os.system("/usr/bin/rrdtoolgraph/tmp/a.png--start'-3600s'--endnow--width400--height100--title'GridGridlasthourlasthour'--vertical-labelload_one--slope-modeDEF:'sum'='/var/lib/ganglia/rrds/cluster/__SummaryInfo__/load_one.rrd:sum':AVERAGEAREA:'sum'#555555:''CDEF:sum_pos=sum,0,LT,0,sum,IFVDEF:sum_last=sum_pos,LASTVDEF:sum_min=sum_pos,MINIMUMVDEF:sum_avg=sum_pos,AVERAGEVDEF:sum_max=sum_pos,MAXIMUMGPRINT:'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") returnimg,"" classGenPicHandler(tornado.web.RequestHandler): defget(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,) defmain(): 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()
PoemMakerPro
以上这篇pythontornado使用流生成图片的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。