美文网首页
Flask 文件下载

Flask 文件下载

作者: SingleDiego | 来源:发表于2022-01-11 15:45 被阅读0次

原文: 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/<filename>')
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

<a href={{ url_for('download_file', filename='test.txt') }}>
  <button>download</button>
</a>

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

相关文章

网友评论

      本文标题:Flask 文件下载

      本文链接:https://www.haomeiwen.com/subject/fngbcrtx.html