Flask/AJAX下载的文件是corrup

2024-09-25 00:22:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个向Ajax发送Excel文件的Flask应用程序。文件从内存发送,但下载的文件已损坏。我应该如何在Ajax中处理来自Flask的响应?我应该使用不同的mimetype或content类型吗?我尝试过更改内容类型和blob类型,但没有成功,我不知道下一步该怎么做。谢谢你的帮助!在

视图.py

@app.route('/RuleMetricQuery', methods=['POST'])
def rulequery():
  query = request.json
  df = fetch_data('my_data.csv', 's3_bucket')

  output = BytesIO()
  writer = pd.ExcelWriter(output, engine='openpyxl')

  df.to_excel(writer, sheet_name='Simple Data')

  writer.close()
  output.seek(0)

  m_type = 'application/vnd.openxmlformatsofficedocument.spreadsheetml.sheet'
  cd = 'attachment; filename=sample_data.xlsx'
  ct = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'

  return Response(output, mimetype=m_type,
                  headers={'Content-disposition':cd, 'Content-type':ct})

查询.js

^{pr2}$

Tags: 文件flask类型dfoutputdataapplicationtype