Flask приложение, показывающее ту же картинку в форме HTML - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть простой 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)```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...