У меня есть простой flask скрипт, который отображает два HTML файла. Один - это экран ввода, на котором пользователь просто загружает файл, а другой - экран вывода, который отображает файл. Два HTML файла показаны ниже:
<body>
<form action = "http://localhost:5000/results" method = "POST"
enctype = "multipart/form-data">
<input type = "file" name = "file" />
<input type = "submit"/>
</form>
</body>
</html>
#result.html
<!doctype html>
<html>
<body>
<p><img src= "{{ filePath }}" , alt= "No image is present"></p>
</body>
</html>
Мой flask скрипт берет файл из элемента формы и затем сохраняет его в папке. Каждый файл сохраняется с тем же именем - «test.jpg». Как только файл сохранен, мой скрипт отображает второй HTML файл и отображает «test.jpg». Если файл с именем «test.jpg» уже существует, он будет перезаписан на новый файл с тем же именем файла. Когда я впервые запустил скрипт, он отобразил нужный мне файл. Тем не менее, когда я запускаю скрипт, он всегда отображает тот же файл, что и тот, который я впервые загрузил при первом запуске приложения. Даже когда я перезапускаю приложение flask, оно всегда показывает одно и то же изображение, даже если «test.jpg» перезаписывается тем, что предоставляет пользователь. Я знаю, что могу просто рандомизировать имена файлов для сохранения, но я не понимаю, почему моя форма HTML отображает одно и то же изображение снова и снова, даже если оно перезаписывается, когда пользователь выбирает другое изображение для сохранения.
@app.route('/results', methods=['GET', 'POST'])
def upload():
if request.method == 'POST':
f = request.files['file']
f.filename = "test.jpg"
#deleting the previous "test.jpg file"
if f.filename in os.listdir(r"static/images"):
os.unlink("static/" + "images/" + f.filename)
#the full local filepath is static/images/test.jpg
filepath = "images/" + secure_filename(f.filename)
f.save("static/" + filepath)
return render_template('result.html', answer = temp, filePath = "static/" + filepath)```