从 Flask 中的另一个目录下载文件
Download File From Another Directory In Flask
我是 Flask 新手。我正在尝试制作 /var/ 目录文件的下载列表,但是
我找不到任何方法来制作这个 link 。
任何文件都可以在此目录中,因此 tempfile 可以解决此问题。
我不知道这个文件,所以我不能在 flask 目录中复制文件,
谁能告诉我如何下载 link 这样的文件?
我从未使用过 Flask,但对 Django 有一些经验。
通过快速查看 flask 文档 (rendering_templates),您必须将上下文变量传递给渲染函数,然后将其添加到 jinja 模板。
我还建议指定一个不同的文件夹来放置下载,因为让用户访问您的 /var/ 文件夹可能会带来安全问题。
见下文:
import os
from flask import Flask, render_template
app = Flask(__name__)
dloads_dir = '/var/www/mysite/downloads/'
dloads = os.listdir(dloads_dir).sort()
dloads_src = ['/downloads/{}'.format(i) for i in dloads]
@app.route('/Downloads')
def list_downloads():
return render_template('downloads.html', dloads=dloads, dloads_src=dloads_src)
然后在 html(我应该说 Jinja2)模板中:
<!doctype html>
<title>Hello from Flask</title>
{% for file in dloads %}
<a href="{{ dloads_src[loop.index0] }}" download>{{ file }}</a>
{% endfor %}
</html>
Here's where I found the loop.index method
(1) 编辑:修复了我的错误 html
我是 Flask 新手。我正在尝试制作 /var/ 目录文件的下载列表,但是 我找不到任何方法来制作这个 link 。 任何文件都可以在此目录中,因此 tempfile 可以解决此问题。 我不知道这个文件,所以我不能在 flask 目录中复制文件, 谁能告诉我如何下载 link 这样的文件?
我从未使用过 Flask,但对 Django 有一些经验。 通过快速查看 flask 文档 (rendering_templates),您必须将上下文变量传递给渲染函数,然后将其添加到 jinja 模板。
我还建议指定一个不同的文件夹来放置下载,因为让用户访问您的 /var/ 文件夹可能会带来安全问题。
见下文:
import os
from flask import Flask, render_template
app = Flask(__name__)
dloads_dir = '/var/www/mysite/downloads/'
dloads = os.listdir(dloads_dir).sort()
dloads_src = ['/downloads/{}'.format(i) for i in dloads]
@app.route('/Downloads')
def list_downloads():
return render_template('downloads.html', dloads=dloads, dloads_src=dloads_src)
然后在 html(我应该说 Jinja2)模板中:
<!doctype html>
<title>Hello from Flask</title>
{% for file in dloads %}
<a href="{{ dloads_src[loop.index0] }}" download>{{ file }}</a>
{% endfor %}
</html>
Here's where I found the loop.index method
(1) 编辑:修复了我的错误 html