Запись и чтение файла колбы по разным маршрутам

#python #flask

Вопрос:

У меня есть две входные записи в HTML-файле, я читаю регион(поле ввода) (ОЧИЩАЮ ВСЕ ДАННЫЕ ФАЙЛА ) и сохраняю его в файле

 #default page of our web-app @app.route('/',methods=['GET','POST']) def home():  if request.method == "POST":    date = request.form["date"]  region =request.form["region"]  print("REGION:HOME",region)  f = open("file.txt", "r ")  f.truncate(0) # need '0' when using r   f.write(region)  f.close()   #dataframe =df  return render_template("index.html")  

ЗАТЕМ прочитайте те же данные файла по этому маршруту

 @app.route('/download') def download_file():  '''  For rendering results on HTML GUI  '''  f = open("file.txt", "r")   reg=f.read()  print("REGION:DOWNLOAD" ,reg)  p = "download.csv"  return send_file(p,as_attachment=True)   

НО чтение файла не содержит одинаковых данных .Хотя файл написан правильно. Я также попытался сохранить переменную региона как глобальную, но это не решает мою проблему

Комментарии:

1. Из кода не совсем понятно, что такое «загрузить.csv». В вашем маршруте по умолчанию вы записываете данные в «file.txt», но в маршруте загрузки вы отправляете в конце файл «download.csv», даже если вы начинаете с открытия «file.txt». вы пробовали использовать: return send_file(«file.txt», as_attachment=True)

2. @kayos «download.csv» — это файл в каталоге, который я отправляю в качестве вложения.

Ответ №1:

Отвечая на мой собственный вопрос, я упустил одну вещь: «cache_timeout=0″.

Это решает мою проблему

»’

 app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0  return send_from_directory(p,"simple_download.csv", as_attachment=True,cache_timeout=0)  

»’