我需要根据烧瓶形式的数据创建图。 我已经在尝试that和that在下一页中显示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
答案 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)
这将导致以下绘图:
现在通过烧瓶API公开此BytesIO对象。
。{{1}}
为了让最终用户访问该图,请将数据集成到HTML网站中。您只需将数据包含在html正文中,即可使用。
参考: http://localhost:5000/plots/breast_cancer_data/correlation_matrix