У меня есть приложение фляги, в котором при использовании одной колбы route
сервер создает CSV-файл и сохраняет его на сервере. Используя сгенерированную кнопку на странице клиента, запускается другая Flask route
, чтобы получить самый последний файл, переместить его в папку tmp и отправить этот файл пользователю, используя send_file
.
Прямо сейчас, когда я запускаю процесс в первый раз и скачиваю файл, все работает как положено. Однако, во второй раз, когда я запускаю процесс, он обслуживает меня старый CSV вместо вновь сгенерированного. Это продолжается до тех пор, пока я не нажму кнопку обновления в браузере.
Ниже приведен код моего приложения:
from flask import Flask, render_template, flash, redirect, request, url_for, Response, send_file
import os
import time
import shutil
import glob
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
@app.route('/')
def index():
return render_template('index.html')
@app.route('/downloadcsv')
def downloadcsv():
current = os.getcwd()
try:
list = glob.glob('{}/*.csv'.format(current))
except:
print('No file found')
basename = os.path.basename(os.path.normpath(max(list, key=os.path.getctime)))
shutil.move(basename, './tmp/{}'.format(basename))
return send_file('./tmp/{}'.format(basename), as_attachment=True)
В случае необходимости ниже приведен код JS, который «генерирует» кнопку загрузки:
var download = '<div id="downloadsection" class="container-contact100-form-btn"><a href="/downloadcsv"><button id="download" class="contact100-form-btn"> <span>DOWNLOAD CSV</span></button></a></div>';
Пожалуйста, дайте мне знать, если я слишком усложняю процесс загрузки ...
Спасибо !!