老师,请问一下像这种文件下载功能是怎么实现的?

来源:2-1 项目搭建

qq_黑猫卡哇伊_0

2021-11-03 21:04:43

https://img.mukewang.com/climg/618288e709a41cee19201080.jpg

写回答

1回答

好帮手慕燕燕

2021-11-04

同学,你好!慕课网的平台不是基于Python语言开发的,在Flask框架中也可以实现类似的下载功能

1、创建html文件,前台显示下载按钮

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>文件下载</title>
    </head>
    <body>
        <h3><a href="{{ url_for('download',fileName='demo.jpg') }}" class="btn btn-primary">下载</a></h3>
    </body>
</html>

2、在视图函数中实现相应的逻辑

from flask import Flask, render_template
from flask import send_file
from flask import request, make_response

app = Flask(__name__)

@app.route("/demo")
def demo():
    return render_template('download.html')

@app.route("/download")
def download():
    # return send_from_directory(r"",filename="demo.jpg",as_attachment=True)
    fileName = request.args.get("fileName")
    response = make_response(send_file(fileName))
    response.headers["Content-Disposition"] = "attachment; filename={};".format(fileName)
    return response

3、访问http://127.0.0.1:5000/demo, 点击下载按钮,即可下载demo.jpg文件(demo.jpg文件在项目中存在)

https://img.mukewang.com/climg/618343d0090ef2cf03970164.jpg

同学可先学完flask课程,回头再优化下载功能,祝:学习愉快!



0

0 学习 · 2433 问题

查看课程