下载React和Python应用程序的文件功能

时间:2019-07-10 12:46:53

标签: python reactjs python-2.7 file download

我的反应代码中有一个按钮,当我单击它时,我应该能够下载文件。我在后端使用Python(没有任何框架)。对于反应部分,我认为this链接说明了应该做什么。单击按钮时,我应该进行API调用,并在返回时可以呈现此IFrame组件。另外,在axios呼叫中,另一个答案建议responseType: 'blob'。我的问题是如果我们要发送文件,后端应该怎么做,让我们假设它只是创建一个文件并返回它。我实际上正在使用一种具有自己的API接口的第三方产品,但是可以使用带有requests库的示例。

def function_called_From_endpoint():
    with open(path) as f:
        return {'data': f }

这样的权利吗?

1 个答案:

答案 0 :(得分:0)

因此,我通过这种方式使其工作:

def function_called_From_endpoint():
   with open(file_path) as f:
      data = f.read()

   return {"data": data }

和前端:

  axios({
        url: url, //your url
        method: 'GET',
        responseType: 'blob', // important

  }).then((response) => {
         const url = window.URL.createObjectURL(new Blob([response.data]));
         const link = document.createElement('a');
         link.href = url;
         link.setAttribute('download', 'file.txt'); //or any other extension
         document.body.appendChild(link);
         link.click();
  });

根据https://stackoverflow.com/a/53230807/5573241的建议。效果很好。