Как отправить объекты ImageFieldFile, извлеченные из базы данных с помощью django, на фронтенд и отобразить их на экране

При использовании django в качестве бэкенда, у меня есть изображение, сохраненное в базе данных в формате ImageField, и в слое представления я получаю объект через orm, как я могу вернуть его моему vue фронтенду.

Я превратил объект ImageField в строку, чтобы вернуть JsonResponse, но внешний интерфейс получает только имя изображения при чтении

def getContent(request):
mtitle=request.GET.get('title')
row_obj=models.content.objects.filter(title=mtitle).first()
res={
     "pic":str(row_obj.img),
     }
print(type(row_obj.img))
return JsonResponse(res, json_dumps_params={"ensure_ascii": False})

Как запросить изображение для отображения на лицевой стороне?

В поле image field будет содержаться путь к изображению.

Вы должны использовать <img src="image path"> во фронтенде

Или конвертировать изображение в base64.

https://stackoverflow.com/a/3715530

Вы должны сами изменить путь к изображению, это просто пример.

with open(f'{static_path}/{row_obj.img}', "rb") as image_file:
    res = {
     "pic": base64.b64encode(image_file.read())
    }
Вернуться на верх