python - 下载同名的不同文件 一次又一次地获取上一个文件
问题描述
我只是创建了一个可以使用 XLSXWRITER 生成 excel 文件的 Web 应用程序。它可以使用 python 使用 send_file 命令下载文件。但问题是每当我下载文件时,有时会发生一个罕见的错误,例如下载我之前下载的上一个文件,当您检查文件时,它应该是新文件。我不知道它是否在缓存问题上。
我已经测试了什么:
使用 2 个设备检查文件。当一台设备上发生错误时,我将其下载到另一台设备上并且它可以工作。
清除浏览器数据和缓存(不解决任何问题)
重新启动互联网和电脑甚至 python 乘客(不解决任何问题)
==================================================== ================
我使用python作为我的后端和xlsxwriter来编写excel文件。
这就是下载工作:
当你点击下载按钮
=> 它创建一个 xlsx 文件,然后在上面写入数据
=>它将xlsx保存在服务器文件夹中
=> 重定向到使用 send_file 将 excel 文件发送到下载流的路由
=>从服务器获取下载文件。
一切都发生在一次点击
该过程的代码python:
@__app.route('/report', methods=['GET','POST'])
@is_logged_in
def report():
if request.method == 'POST':
if request.form['action'] == 'DownloadReport':
__CustomerName_AddReport_Form = request.form['CustomerNametxt']
__Tax_AddReport_Form = request.form['Taxtxt']
__Bulan_AddReport_Form = request.form['Bulantxt']
__Tahun_AddReport_Form = request.form['Tahuntxt']
if __CustomerName_AddReport_Form:
workbook = xlsxwriter.Workbook('Report.xlsx')
worksheet = workbook.add_worksheet()
worksheet.write('B2','ANYTHING')
workbook.close()
return render_template('downloadreport.html')
else:
return render_template('report.html')
@__app.route('/downloadreport', methods=['GET'])
def downloadreport():
return send_file('/home/suiinkxy/jakarta/Report.xlsx' ,as_attachment=True)
任何人都可以对此提供帮助,如果可以让我变得更好,我将不胜感激批评和意见。之前谢谢你。
更新信息 :
Whenever the file is downloading the fresh one the network response is status code : 200 OK, But everytime it failed the response (download the previous version) it changed into [Status Code : 200 OK (From disk cache) ]. Any solution to disable it ? *I am using flask for my python and html for frontend.
更新信息(1):
我发现了问题,这完全与浏览器上的缓存有关。如果我在 chrome 上使用禁用缓存,一切都很好,或者使用总是从边缘刷新。问题是如何永远禁用我的 python 或浏览器(chrome 或 edge)的缓存,而不仅仅是开发人员选项(f12)。
解决方案
推荐阅读
- list - OCaml 中的递归:使用 Concat 进行反向
- flutter - Flutter - 翻转动画 - 根据点击的位置将卡片翻转到其右侧或左侧
- python - 刮无硒,蟒蛇
- python - 打开并显示从本地文件夹中选择的图像
- kubernetes - 用 Deployment 替换 ReplicationController 是否安全
- c# - c#中受保护和私有保护有什么区别?
- algorithm - 具有两个独立外循环和一个相关内循环的三重嵌套 For 循环
- node.js - 如何使用 MongoDB/Mongoose 和 node.js 中的另一个字段值更新字段
- javascript - 总是收到“无法读取 null 的属性'样式'”错误,我不明白为什么
- reactjs - 如何测试scss模块