#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)
»’