gpt4 book ai didi

python - 用于公开图像的 Django REST API

转载 作者:太空狗 更新时间:2023-10-29 22:15:52 28 4
gpt4 key购买 nike

我有一个 Django 应用程序,我想公开模型图像,这样当我请求 /image/school_id/400 时,它将返回 ID 为 school_id 裁剪并调整为 400x400 像素的框。这是我试过的

@api_view(['GET', 'POST'])
def image_view(request, school_id, size):

image = School.objects.get(school__pk=school_id).image
resized_img = image #Handle resizing here

return Response(resized_img, content_type='*/*')

我得到的只是一个错误'utf8' codec can't decode byte 0xff in position 0: invalid start byte

如何返回图像?我正在使用 Django-rest-framework http://www.django-rest-framework.org/api-guide/renderers#advanced-renderer-usage

最佳答案

您正在尝试返回原始图像数据并让 Django REST Framework 呈现响应。由于响应不应根据所选格式而有所不同,因此您应该使用原始 HttpResponse 对象。

return HttpResponse(resized_img, content_type="image/png")

请注意,content_type 应反射(reflect)返回响应的内容类型,该类型应与正在调整大小的图像的内容类型相匹配。


您收到的错误是因为 Renderer 类需要基于文本的响应,而不是图像数据。 Django REST Framework 不会将自定义渲染器应用于 HttpResponse 类,仅应用于 Django REST Framework Response 类。

关于python - 用于公开图像的 Django REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26621114/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com