如何创建单独的函数(在controller.py中的索引函数内),这样我就可以创建两个独立的图,其中包含两个独立加载的独立文件?
换句话说,我希望用户采取以下步骤:
两个图都应出现在同一个HTML模板上。两个文件都将使用相同的绘图功能(或现在)。理想情况下,我想使用不同的功能。
以下是输入HTML的外观:
绘制的功能如下:
def compute_mean_std(filename=None):
# data = np.loadtxt(os.path.join('uploads', filename))
df = pd.read_csv(os.path.join('uploads', filename))
sns.set_style('darkgrid')
fig, ax = plt.subplots(3, sharex=True)
ax[0].plot(df.index, df.x, color="red")
ax[1].plot(df.index, df.y, color="blue")
ax[2].plot(df.index, df.z, color="teal")
ax[0].legend(numpoints=1, loc=1)
ax[1].legend(loc=1)
ax[2].legend(loc=1)
# Check static folder:
if not os.path.isdir('static'):
os.mkdir('static')
else:
for plotfilename in glob.glob(os.path.join('static', '*.png')):
os.remove(plotfilename)
plotfile = os.path.join('static', str(time.time()) + '.png')
plt.savefig(plotfile)
return plotfile
虽然控制器具有以下代码:
from compute import compute_mean_std as compute_function
@app.route('/', methods=['GET', 'POST'])
def index():
form = Average(request.form)
filename = None # default
if request.method == 'POST':
# Save uploaded file on server if it exists and is valid
if request.files:
file = request.files[form.filename.name]
if file and allowed_file(file.filename):
# Make a valid version of filename for any file ystem
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'],
filename))
result = compute_function(filename)
else:
result = None
return render_template("view.html", form=form, result=result)
现在两个都绘制相同的图。
答案 0 :(得分:1)
那么我们如何区分两个文件上传。选项是我们必须创建两个文件输入...
<input type="file" name="file_training">
<input type="file" name="file_test">
并且在您的视图功能中,您必须检查用户上传的文件
# Inside POST method
file_training = request.files.get('file_training')
file_test = request.files.get('file_test')
return jsonify({"file_training": file_training, "file_test": file_test})
HTML
在你的ajax成功中,记录哪些有值。