我想返回一個渲染頁面和一個可下載文件作為對請求的響應(yīng)。我試圖返回兩個響應(yīng)的元組,但是它不起作用。如何提供下載和頁面?return response, render_template('database.html')return render_template('database.html'), responseFlask是否有能力應(yīng)對這種情況?似乎是一個普通問題,我只想發(fā)送回一個文件以供下載,然后呈現(xiàn)頁面。
1 回答

SMILET
TA貢獻(xiàn)1796條經(jīng)驗 獲得超4個贊
您不能將多個響應(yīng)返回到單個請求。取而代之的是,生成文件并將其存儲在某個位置,然后通過另一條路徑為它們提供服務(wù)。返回呈現(xiàn)的模板,并提供用于提供文件路徑的網(wǎng)址。
@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生成下載網(wǎng)址。
<a href="{{ url_for('database_download', filename=filename) }}">Download</a>
添加回答
舉報
0/150
提交
取消