Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Django中的HTML页面上显示blob图像?_Python_Django_Base64_Blob - Fatal编程技术网

Python 如何在Django中的HTML页面上显示blob图像?

Python 如何在Django中的HTML页面上显示blob图像?,python,django,base64,blob,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.b6

我在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:



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

AttributeError:“bytes”对象没有属性“read”,请显示该值。这是一个很长的字节值,如何将其插入消息?
obj.photo
值以:b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\开头。。。等。
image\u数据
值以:b'/9j/4aaqskzjrgabaqaaaqabad/2wbdaaggbggcgbqghbwcjcqgkdbqnd开始。。。等等,我设法把它应用到一个对象上。我是否可以以任何方式将其应用于查询集,如
objects.all()
,并以json格式发送?当然可以。您需要对每个对象应用
base64.b64encode(obj.photo).decode()
<img src="data:image/jpeg;base64,{{ imgs }}" class="img-thumbnail">