如何在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()
下载功能内部。这样每当调用下载函数时都会重新计算它。
我有一个 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()
下载功能内部。这样每当调用下载函数时都会重新计算它。