Задать вопрос
@marataziat
Джангист-тракторист

Как мне выполнить функцию после return в python?

Я написал такой вот скрипт:
# -*- coding: utf-8 -*-
from wallpaper import Cubic
from bottle import route, run, template, static_file
import uuid, os, time

@route('/<width:int>/<height:int>')
def index(width,height):
    randomname = str(uuid.uuid4()) +'.png'
    if width > 1300 and (height > 1300):
      return ('<b>api error: you have exceeded the maximum resolution, max size is 1300x1300</b>!')

    image = Cubic(width=width,height=height,filename=randomname,cube_size=90)
    image.paint()
    return static_file(randomname, root='/Users/marat/Desktop')
    os.remove(randomname)

run(host='localhost', port=8180)

Я на сколько понял, чтобы вывести картинку (static_file) мне потребуется return. Но мне нужно после выдачи картинки static_file юзеру картинка удалялась! Но этого не может произойти потому что мешает return! Как мне сделать так чтобы после return код выполнился :>?
  • Вопрос задан
  • 1270 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
from bottle import response

@route('/<width:int>/<height:int>')
def index(width, height):
    ...
    image = Cubic(width=width, height=height, filename=randomname, cube_size=90)
    image.paint()
    img_bytes = open(randomname, 'rb').read()
    os.remove(randomname)
    response.set_header('Content-type', 'image/png')
    return img_bytes
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
chewarer
@chewarer
Засунь то что в return и после него в отдельную функцию. И вызывай её в return.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы