Python绘图API:如何通过Flask API公开科学的python绘图?

时间:2019-08-06 05:45:21

标签: python matplotlib flask

我需要根据烧瓶形式的数据创建图。 我已经在尝试thatthat在下一页中显示matplotlib分散,以及如何看到我不知道该怎么做,因为没人能解释我的情况

所以,您能建议我如何分散网页中的python数据。 如果将它放在带有表单的单个网页中会更好。

我还检查了matplotlib的运行速度如此缓慢,kek

已添加

但是填写表格后如何在下一页中显示图像?

我想我需要像这样使用另一个flask.func:


from flask import Flask, render_template, url_for, redirect, send_file, make_response
from forms import AAForm
from create_plot import ploter
import os

app = Flask(__name__)

SECRET_KEY = os.urandom(32)
app.config['SECRET_KEY'] = SECRET_KEY

@app.route('/', methods=['GET', 'POST']) 
def index():
    form = AAForm()
    if form.validate_on_submit():
        return render_template('img.html', url='/kek')
    return render_template('index.html', form=form)

@app.route('/kek', methods=['GET', 'POST']) 
def img(form):
    bytes_obj = ploter(form.uniprot_id.data, ['K', 'R', 'H'])

    return send_file(bytes_obj,
                     attachment_filename='plot.png',
                     mimetype='image/png')

if __name__ == '__main__':
    app.run(debug=True)

这:

<img src="{{ url }}">

但是我不明白如何将form.data发送到img.func

1 个答案:

答案 0 :(得分:1)

绘制数据

这里一种可能的方法是构建一个返回数据的API,并让应用程序的前端使用或多或少复杂的javascript图表库呈现数据。

我们需要哪些组件:

一个数据集:一个来自scikit-learn的乳腺癌数据集。

情节:从seaborn获取一个简单的相关情节作曲。

API:使用flask创建简单的API。

首先加载数据并绘制图

from flask import Flask, send_file, make_response, 
from plot import do_plot
app = Flask(__name__)

@app.route('/plots/breast_cancer_data/correlation_matrix', methods=['GET'])
def correlation_matrix():
    bytes_obj = do_plot()

    return send_file(bytes_obj,
                     attachment_filename='plot.png',
                     mimetype='image/png')

if __name__ == '__main__':
    app.run(debug=False)

这将导致以下绘图:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/url-rewriting?view=aspnetcore-2.1&tabs=aspnetcore2x

现在通过烧瓶API公开此BytesIO对象。

{{1}}

如果您的服务器在本地主机上运行,​​该映像将在Image representing the plot下可用。

为了让最终用户访问该图,请将数据集成到HTML网站中。您只需将数据包含在html正文中,即可使用。

参考: http://localhost:5000/plots/breast_cancer_data/correlation_matrix