用户将文件下载到其本地目录

时间:2019-06-11 13:16:58

标签: html python-3.x download bottle

后端-我编写了一个python脚本,该脚本在进行一些聚合后创建了一个csv文件。

前端-方法完成运行并且生成.csv文件并将其保存到服务器中的目录后,我希望能够提示用户将.csv文件保存在其本地计算机上(就像Windows一样)提示,当您在网页上按“另存为...”时会得到提示。

这是我到目前为止在Return Excel file in Flask appDownload a file when button is pressed on web application?中学到的东西的一个示例:

示例代码:

with open(save_path + unique_filename + ".csv", 'w', encoding = 'utf8') as g:
    writer = csv.writer(g, lineterminator = '\n')
    writer.writerow(['name', 'place', 'location'])

HTML:

@app.route('/login', method='POST')
def do_login():
    category   = request.forms.get('category')
    return '''
    <html><body>
    Hello. <a href="/getCSV"> Save Results </a>
    </body></html>
    '''

@app.route("/getCSV", methods = ['GET', 'POST'])
    def getPlotCSV():
    return send_from_directory(save_path + unique_filename + ".csv", as_attachment=True)


if __name__ == "__main__":
   run(app, host = 'localhost', port = 8000)

我的问题是:

1)send_from_directory来自烧瓶,什么是等效瓶?

2)我可以将创建的csv放在代码中的什么位置,以便用户可以将其下载到本地计算机上?

3)我的代码还有什么问题?

1 个答案:

答案 0 :(得分:0)

瓶示例:来自https://bottlepy.org/docs/dev/tutorial.html

@route('/download/<filename:path>')
def download(filename):
    return static_file(filename, root='/path/to/static/files', download=filename)