【问题标题】:Why my file is not being downloaded (Flask) [duplicate]为什么我的文件没有被下载(Flask)[重复]
【发布时间】:2018-04-16 03:58:22
【问题描述】:

我的目录中有一个.txt 文件。我只需要在我的 HTML 页面上添加一个按钮即可为用户下载此文件。

我想出了这段代码,但问题是当我在我的 HTML 页面中单击 submit 时没有任何反应,也没有错误。但是文件没有被下载。

<form method="GET">
    <input type="submit">
</form>

我在 Flask 中的代码

@app.route('/return-files', methods=['GET'])
def return_file():
    return send_from_directory(directory='Users/Desktop/Python/', filename='myFile.txt', as_attachment=True)

注意:我检查了有关堆栈溢出的所有问题。他们中的大多数人在下载之前将文件放在静态文件夹中,或者其他我不明白他们在做什么的人,因为他们没有在 HTML 部分显示要做什么

【问题讨论】:

标签: python python-3.x flask


【解决方案1】:

您缺少的部分是表单action

 <form method="GET" action="{{ url_for('return_file') }}">
   <input type="submit">
 </form>

如果你不指定这个,那么提交按钮点击没有处理程序来处理它的动作。

如果上述更改不起作用,请检查您的文件路径是否正确。

【讨论】:

  • 非常感谢。我添加了你提到的内容,但我收到了这个错误。 The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.文件路径100%正确但文件不在静态文件中,我应该放在那里吗?
  • 可以直接用action="/return-files"代替url_for。我认为缺少一些烧瓶应用程序设置来使这个神奇的功能起作用url_for
猜你喜欢
  • 2013-02-28
  • 1970-01-01
  • 2020-12-26
  • 1970-01-01
  • 1970-01-01
  • 2019-10-21
  • 2012-05-11
  • 1970-01-01
  • 2013-06-16
相关资源
最近更新 更多