如何在Django的HTML页面上显示Blob图片?

时间:2019-05-14 20:59:56

标签: python django base64 blob

我在mysql数据库的blob字段中有一个图像。使用基本客户端可以正确显示图像,但是我无法在html页面中显示图像。

我尝试使用base64转换器返回字节。

models.py:

class BlobImg(models.Model):
    photo = models.TextField(null=True)

views.py:

def home(request):
    obj = BlobImg.objects.get(id=1)
    image_data = base64.b64encode(obj.photo)

    data = {
        'news': News.objects.all(),
        'title': 'Главная страница',
        'imgs' : image_data
    }
    return render(request, 'app/home.html', data)

html:

<img src="data:image/jpeg;base64,{{ imgs }}" class="img-thumbnail">

我在“ imgs”中得到了字节字符串,但是它不起作用

1 个答案:

答案 0 :(得分:1)

在Python 3中,base64.b64encode()函数返回编码的字节,而不是字符串。因此,您的数据URI必须显示为data:image/jpeg;base64,b'/9j/4AA...',而显示为data:image/jpeg;base64,/9j/4AA...。要解决此问题,例如,使用base64.b64encode(obj.photo).decode()将字节解码为字符串。