HTML 下载失败说 "Failed-No file" 使用 python flask 服务器
HTML download fails saying "Failed-No file" with python flask server
我是网络编程领域的新手,想看看是否可以创建 zip 文件的下载。我在我的 HTML 中创建了一个锚元素,如下所示:<a href="./download/myFile.zip" download>Download File</a>
然后,我创建了我的 Flask 服务器:
from flask import Flask, render_template, request
app = Flask(__name__, template_folder="C:/Users/User/Desktop/website")
@app.route('/')
def upload_file():
return render_template('index.html')
然后我启动了服务器并去了地址。我点击下载文件,它说失败 - 没有文件。我的网站目录看起来像那样。
文件夹下载中唯一的文件是 myFile.zip。谁能告诉我为什么会这样以及如何解决?如果您想查看 index.html 中的完整代码,请参见下方。谢谢!
<!DOCTYPE html>
<html>
<head>
<title>File</title>
</head>
<body>
<h1>File</h1>
<h2>Download</h2>
<a href="./download/myFile.zip" download>Download File</a>
</body>
</html>
download
文件夹中没有任何内容。
一个快速的解决方法可能是将静态文件夹具体设置为 download
:
app = Flask(__name__, template_folder="C:/Users/User/Desktop/website"
static_folder="download")
但是您可能希望坚持使用默认值 'static'
(而不是提供 static_folder
参数。
因此,您可以将 download
文件夹重命名为 static
,并使用 Jinja2 语法生成 link,即:
<a href="{{ url_for('static', filename='myFile.zip') }}" download>Download File</a>
此 URL 然后呈现为:
/static/myFile.zip
如果您想更进一步,将可下载文件存储在名为 static/download
的文件夹中,Jinja 语法为:
{{ url_for('static', filename='download/myFile.zip') }}
我是网络编程领域的新手,想看看是否可以创建 zip 文件的下载。我在我的 HTML 中创建了一个锚元素,如下所示:<a href="./download/myFile.zip" download>Download File</a>
然后,我创建了我的 Flask 服务器:
from flask import Flask, render_template, request
app = Flask(__name__, template_folder="C:/Users/User/Desktop/website")
@app.route('/')
def upload_file():
return render_template('index.html')
然后我启动了服务器并去了地址。我点击下载文件,它说失败 - 没有文件。我的网站目录看起来像那样。
文件夹下载中唯一的文件是 myFile.zip。谁能告诉我为什么会这样以及如何解决?如果您想查看 index.html 中的完整代码,请参见下方。谢谢!
<!DOCTYPE html>
<html>
<head>
<title>File</title>
</head>
<body>
<h1>File</h1>
<h2>Download</h2>
<a href="./download/myFile.zip" download>Download File</a>
</body>
</html>
download
文件夹中没有任何内容。
一个快速的解决方法可能是将静态文件夹具体设置为 download
:
app = Flask(__name__, template_folder="C:/Users/User/Desktop/website"
static_folder="download")
但是您可能希望坚持使用默认值 'static'
(而不是提供 static_folder
参数。
因此,您可以将 download
文件夹重命名为 static
,并使用 Jinja2 语法生成 link,即:
<a href="{{ url_for('static', filename='myFile.zip') }}" download>Download File</a>
此 URL 然后呈现为:
/static/myFile.zip
如果您想更进一步,将可下载文件存储在名为 static/download
的文件夹中,Jinja 语法为:
{{ url_for('static', filename='download/myFile.zip') }}