为了账号安全,请及时绑定邮箱和手机立即绑定

在一个Flask响应中返回下载并呈现的页面

在一个Flask响应中返回下载并呈现的页面

紫衣仙女 2020-02-01 17:18:29
我想返回一个渲染页面和一个可下载文件作为对请求的响应。我试图返回两个响应的元组,但是它不起作用。如何提供下载和页面?return response, render_template('database.html')return render_template('database.html'), responseFlask是否有能力应对这种情况?似乎是一个普通问题,我只想发送回一个文件以供下载,然后呈现页面。
查看完整描述

1 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

您不能将多个响应返回到单个请求。取而代之的是,生成文件并将其存储在某个位置,然后通过另一条路径为它们提供服务。返回呈现的模板,并提供用于提供文件路径的网址。


@app.route('/database')

def database():

    # generate some file name

    # save the file in the `database_reports` folder used below

    return render_template('database.html', filename=stored_file_name)


@app.route('/database_download/<filename>')

def database_download(filename):

    return send_from_directory('database_reports', filename)

在模板中,用于url_for生成下载网址。


<a href="{{ url_for('database_download', filename=filename) }}">Download</a>


查看完整回答
反对 回复 2020-02-01
  • 1 回答
  • 0 关注
  • 491 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信