我有Flask网站,我想在其中添加下载按钮,该按钮下载包含抓取数据的.csv文件。
在我的html文件中,我有以下代码:
<a href="cms_scrape.csv" ><button>Download!</button></a>
我得到的唯一输出是错误:在服务器上找不到所请求的URL。如果您手动输入网址,请检查拼写,然后重试。
文件位于其正确的文件夹中。
我的文件夹结构:
└───Project
│ cms_scrape.csv
│
└───templates
index.html
答案 0 :(得分:0)
您将需要在网站的后端指定某种路由。
例如,在烧瓶站点的某个地方,您的索引可能有一条路由@app.route('/')
。您将需要类似的路由文件。该路由将进入您的文件系统并返回文件本身。
@app.route('/csv_file')
def csv_file():
return flask.send_file('path/to/file/cms_scrape.csv',
attachment_filename='cms_scrape.csv',
as_attachment=True)
您还需要修改html以访问路由,而不是直接访问文件名(当然,除非您动态创建路由):
<a href="/csv_file" ><button>Download!</button></a>
答案 1 :(得分:0)
对此不确定,但我认为标记具有可以使用的下载属性。然后,您不需要按钮。
用法:
<a href="/path/to/file" download>
答案 2 :(得分:0)
您可以使用
链接到文件{{ url_for('static', filename='filename.foo') }}
模板中的功能。您必须将文件存储在名为“ static”的文件夹中,该文件夹应该位于主密码所在的目录中。
模板中的链接应如下所示:
<a href=" {{ url_for('static', filename='cms_scrape.csv') }} " download>Download!</a>