Python + Flask, вывод картинки из базы данных MySQL?

Имеется база данных, в которой хранятся изображения в поле BLOB. Пытаюсь вывести их в браузер. Сайт на Flask.

На PHP решалось скриптом, вроде такого:
$img=mysql_query("SELECT `emblem_len`, `emblem_data` FROM `icons` WHERE `icon_id` = $id"); 

$img_row = mysql_fetch_array($img);
Header("Content-Disposition: inline; filename=".$id.".png");
Header("Content-type: image/png");
Header("Content-length: ".(int)$img_row["emblem_len"]);
echo $img_row["emblem_data"];

Сейчас у меня получилось примерно так:
@app.route("/show_icon/<int:pid>.png")
def show_icon(pid):
        db = pydb.get_db()
        cursor = db.cursor()
        sql = "SELECT `emblem_data`, `emblem_len` FROM `icons` WHERE `icon_id` = %s;"
        cur = cursor.execute(sql % (pid))
        image = cursor.fetchone()
        resp = make_response(image[0])
        resp.headers['Content-Type'] = 'image/png'
        resp.headers['Content-Length'] = image[1]
        resp.headers['Content-Disposition'] =  'inline; filename="%s.png"' % (pid)
        return resp

Выводится текст поля, заголовки отсылаются, но картинка не показывается.

P.S. Вопрос не о том, где лучше хранить картинки. Картинки хранятся в базе независимо от меня, мне нужно их вывести в браузер.
  • Вопрос задан
  • 4778 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ellinium
@Ellinium
image.decode('base64')
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы