Flask: удалить файл с сервера после завершения send_file () - PullRequest
0 голосов
/ 20 июня 2020

У меня есть серверная часть Flask, которая генерирует изображение на основе некоторого пользовательского ввода и отправляет это изображение на клиентскую сторону, используя функцию send_file() из Flask.

Это Python код сервера:

@app.route('/image',methods=['POST'])
def generate_image():
    cont = request.get_json()
    t=cont['text']
    print(cont['text'])
    name = pic.create_image(t) //A different function which generates the image
    time.sleep(0.5)
    return send_file(f"{name}.png",as_attachment=True,mimetype="image/png")

Я хочу удалить это изображение с сервера после того, как оно было отправлено клиенту.

Как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 20 июня 2020

Хорошо, я решил. Я использовал @app.after_request и использовал условие if для проверки конечной точки, а затем удалил изображение

@app.after_request
def delete_image(response):
    global image_name
    if request.endpoint=="generate_image": //this is the endpoint at which the image gets generated
        os.remove(image_name)
    return response
1 голос
/ 20 июня 2020

Вы могли бы иметь другую функцию delete_image () и вызывать ее внизу функции generate_image ()

...