在模板中显示blob - 将二进制数据转换为模板中的图像

时间:2016-06-22 20:07:27

标签: django sqlite django-templates

我目前正在使用sqlite作为我的数据库。现在我的一个表包含一个基本上是图像的blob数据。由于某些原因,我没有使用Djangos ORM并直接从我的数据库中读取和写入。现在我想知道如何将这个二进制数据转换/渲染成一个我的模板中的图片?

目前显示图像我会做这样的事情

<img src=“pic.gif" alt="HTML5 Icon" style="width:128px;height:128px;">

但在这种情况下,图像是在运行时构建的,图像的数据正从视图传递到模板。

我在db中存储图像的方式是这样的

def insert_Sample_imageInDB():
    picture_file="pic.jpg"
    cursor = connection.cursor()
    with open(picture_file, 'rb') as input_file:
        ablob = input_file.read()
        base = os.path.basename(picture_file)
        afile, ext = os.path.splitext(base)
        sql = "INSERT INTO ImageTable (image_col) VALUES(%s)"
        cursor.execute(sql, [sqlite3.Binary(ablob)])
        cursor.close()

1 个答案:

答案 0 :(得分:0)

所以我基本上将图像存储在我的数据库中作为base64编码字符串,然后使用以下内容在我的视图中显示该图像

 <img alt="Embedded Image" src="data:image/png;base64,{{ rslt }}" style="width:50px;height:50px;"/>