Flask 文件下载

原文: python - Flask Download a File - Stack Overflow

我们使用 Flask 的 send_file 方法来构建一个下载文件的视图函数,要完成下载我们首先要有被下载的文件和放置该类文件的路径。

我们在根目录新建一个 download 文件夹用于放置它们,为了方便调用我们还应当把该路径写进 Flask 的配置内。

# app.py

from flask import (
    Flask, 
    render_template, 
    send_file
)
import os

basedir = os.path.abspath(os.path.dirname(__file__))

app = Flask(__name__)
# 放置下载文件的路径
app.config['DOWNLOAD_FOLDER'] = os.path.join(basedir, 'download')


@app.route('/')
def index():
   return render_template('index.html')

@app.route('/download/')
def download_file (filename):
    folder = app.config['DOWNLOAD_FOLDER']
    # 构造供下载文件的完整路径
    path = os.path.join(folder, filename)
    return send_file(path, as_attachment=True)

然后我们在模板文件实现点击按钮即下载的功能,使用 url_for() 即可:

# index.html


  

确保 download 文件夹内存在 test.txt 文件,点击按钮即可看到下载弹窗。

你可能感兴趣的:(Flask 文件下载)