我有一个应用程序,它接收一些信息,使用pandas执行一些计算,并将最终的pandas数据框转换为CSV,然后使用Flask应用程序下载.如何在一个视图中下载多个CSV?似乎我一次只能返回一个响应.
一个示例代码段:
def serve_csv(dataframe,filename):
buffer = StringIO.StringIO()
dataframe.to_csv(buffer, encoding='utf-8', index=False)
buffer.seek(0)
return send_file(buffer,
attachment_filename=filename,
mimetype='text/csv')
def make_calculation(arg1, arg2):
'''Does some calculations.
input: arg1 - string, arg2- string
returns: a pandas data frame'''
@app.route('test_app', methods=['GET', 'POST']
def test_app():
form = Form1()
if form.validate_on_submit():
calculated_dataframe = make_calculation(str(form.input_1.data), str(form.input_2.data))
return serve_csv(calculated_dataframe, 'Your_final_output.csv')
return render_template('test_app.html', form=form)
Run Code Online (Sandbox Code Playgroud)
所以我们在上面的例子中说make_calculation返回了两个pandas数据帧.如何将它们打印到CSV?