尽管文件存在,但烧瓶send_file不起作用

时间:2020-10-10 00:50:29

标签: python jquery ajax flask

我接到了烧瓶路径的ajax调用。这个ajax调用位于按钮的onlick函数内部(因为我必须发送一些预处理的数据)。在python代码中,我创建了一个带有2个标签的xlsx spreadhseet,并将文件保存在服务器中。然后,我尝试在客户端中下载它,但没有成功。没有错误,并且响应为200 OK,但是未下载文件。 这是我的python代码:

@app.route('/download_file', methods=['GET', 'POST'])
def download_file():
    v1 = request.json['v1']
    v2 = request.json['v2']
    v1_df = pd.DataFrame(v1, columns=V1_HEADERS)
    v2_df = pd.DataFrame(v2, columns=V2_HEADERS)
    final_excel = f'resources/final_excel.xlsx'
    writer = pd.ExcelWriter(final_excel, engine='xlsxwriter')
    v1_df.to_excel(writer, sheet_name='V1', index=False)
    v2_df.to_excel(writer, sheet_name='V2', index=False)
    writer.save()
    return send_file(final_excel, as_attachment=True, mimetype='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')

我也尝试了send_directory,但没有成功。

我在做什么错?我有点绝望。

非常感谢您。

1 个答案:

答案 0 :(得分:0)

在我看来,您似乎无法正确处理Ajax回调中返回的file。由于这是Ajax调用,它将被返回到相关的回调中供您处理。

因此,在下面的.JS代码中,根据需要进行处理,例如

 success:function(callback){
    var temp = 'file-> ' + callback;
    $(doc).text(temp)
 }

这可能也有帮助-Download a file