python - 如何在 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 时的下载,如果我想下载今天的文件,我应该登录服务器并重新加载主管。
解决方案
所以,我认为问题是你的变量的范围。程序启动时加载变量“today”。如果您希望每次运行函数时变量“today”实际上是今天,那么您需要在函数运行时更新变量。
为此,只需移动
today= datetime.date.today()
在下载功能里面。这样,每当调用下载函数时都会重新计算它。
推荐阅读
- r - R未来:显示进度+等到完成
- python - 将数据添加到列并附加它
- c# - c#LINQ如何正确地将方法传递给select并返回值
- html - 如何在 CSS 中对齐下拉菜单
- python - 创建一个函数,该函数接受多个数据框列并跨列溢出值
- phpstorm - 如何在 PhpStorm 中访问 DataGrip?
- laravel - Laravel sanctum SPA 登录后未经身份验证
- javascript - 如何覆盖 react-router-dom Link 组件反向链接?
- javascript - 未捕获的 ReferenceError:showProvince 未在 HTMLAnchorElement.onmouseover 中定义
- wordpress - 如何清除/删除 NextJs 中的缓存?