小编Luc*_*ano的帖子

使用 FLask 和 matplotlib 即时生成图像

我想绘制图像而不必将其保存在静态文件夹中。

我有一个用户 Messa 在这里发布的示例,运行得很好:

import io
import random
from flask import Response
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure

@app.route('/plot.png')
def plot_png():
    fig = create_figure()
    output = io.BytesIO()
    FigureCanvas(fig).print_png(output)
    return Response(output.getvalue(), mimetype='image/png')

def create_figure():
    fig = Figure()
    axis = fig.add_subplot(1, 1, 1)
    xs = range(100)
    ys = [random.randint(1, 50) for x in xs]
    axis.plot(xs, ys)
    return fig
Run Code Online (Sandbox Code Playgroud)

然后在 HTML 文件中:

<img src="/plot.png" alt="my plot">
Run Code Online (Sandbox Code Playgroud)

结果是完美的。我即时获取图像。

现在我想使用一些这样的参数:

@app.route('/<x_values_source>/<y_values_source>/plot.png')
def plot_png(x_values_source, y_values_source):
    fig = create_figure(x_values_source, y_values_source)
    output = io.BytesIO() …
Run Code Online (Sandbox Code Playgroud)

python matplotlib flask

3
推荐指数
1
解决办法
3319
查看次数

标签 统计

flask ×1

matplotlib ×1

python ×1