我想返回一个呈现的页面和一个可下载的文件作为对请求的响应.我试图返回两个响应的元组,但它不起作用.我该如何提供下载和页面?
return response, render_template('database.html')
return render_template('database.html'), response
Run Code Online (Sandbox Code Playgroud)
Flask能否处理这种情况?看起来像一个普通的问题,我只是想发回一个文件进行下载,然后渲染页面.
您无法向单个请求返回多个响应.相反,在某处生成并存储文件,并使用其他路径为它们提供服务.返回渲染的模板,其中包含用于提供文件的路径的URL.
@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)
Run Code Online (Sandbox Code Playgroud)
在模板中,用于url_for
生成下载URL.
<a href="{{ url_for('database_download', filename=filename) }}">Download</a>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6168 次 |
最近记录: |