据我所知,Tornado是一个服务器和一个框架.在我看来,使用Flask和Tornado就像添加另一个抽象层(更多的开销).为什么人们一起使用Flask和Tornado,有什么优势?
我正在使用matplotlib在Web应用程序中呈现一些图形.我以前fig.savefig()在运行脚本时使用过.但是,我需要一个函数来返回一个实际的".png"图像,以便我可以用我的HTML调用它.
一些(可能不必要的)信息:我正在使用Python Flask.我想我可以使用fig.savefig()并将图形粘贴在我的静态文件夹中,然后从我的HTML中调用它,但我不想每次都这样做.如果我可以创建图形,从中创建图像,返回该图像,并从我的HTML中调用它,那么它将是最佳的,然后它就会消失.
创建图形的代码有效.但是,它会返回一个数字,我想这与HTML不兼容.
这是我draw_polygon在路由中调用的地方,draw_polygon是返回图形的方法:
@app.route('/images/<cropzonekey>')
def images(cropzonekey):
fig = draw_polygons(cropzonekey)
return render_template("images.html", title=cropzonekey, figure = fig)
Run Code Online (Sandbox Code Playgroud)
这是我试图生成图像的HTML.
<html>
<head>
<title>{{ title }} - image</title>
</head>
<body>
<img src={{ figure }} alt="Image Placeholder" height="100">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
并且,正如你可能猜到的,当我加载页面时,我得到的只是Image Placeholder.所以,他们不喜欢我用这个数字输入的格式.
有谁知道matplotlib方法/ work-arounds将图形变成实际图像?我到处都是这些文档,但我找不到任何东西.谢谢!
顺便说一句:不认为有必要包含构成数字的python代码,但如果你们需要看到它(我只是不想混淆问题),我可以包括它
我想运行一个使用Tornado在Flask中编写的简单应用程序.我该怎么做呢?我想使用Python 2.7和最新的Tornado版本(4.2).
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello World!'
if __name__ == '__main__':
app.run()
Run Code Online (Sandbox Code Playgroud)