首页 > 解决方案 > 如何在 Flask 中制作爬虫输出的下载链接?

问题描述

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

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'))

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

标签: pythonlinuxnginxflasksupervisord

解决方案


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

为此,只需移动

today= datetime.date.today()

在下载功能里面。这样,每当调用下载函数时都会重新计算它。


推荐阅读