如何在Flask中为爬虫输出下载link?

How to make download link for crawler output in Flask?

我有一个 Flask 网络应用程序,当用户单击按钮时,爬虫开始工作并创建一个 csv 输出,我想创建一个下载 link 以下载今天创建的文件。这是我的代码:

import datetime
today= datetime.date.today()
@users.route('/download')
@login_required
def download():
   path = f'../CrawlBot/Output/All/allsites-{today}.csv'
   try:
       return send_file(path, as_attachment=True)
   except:
       flash('File not found for today! run Crawler.', 'danger')
       return redirect(url_for('main.home'))

但这是我上次重新加载 supservisorctl 时的下载,如果我想下载今天的文件,我应该登录服务器并重新加载主管。

所以,我认为问题在于您的变量范围。程序启动时加载变量“today”。如果您希望每次函数 运行 时变量“今天”实际上是今天,您需要在函数 运行s.

时更新变量

为此,只需移动

today= datetime.date.today()

下载功能内部。这样每当调用下载函数时都会重新计算它。