django rest-framework返回图片到前端提示: UnicodeDecodeError请问这是为什么?

django rest-framework返回图片到前端提示: UnicodeDecodeError请问这是为什么?

django rest-framework返回图片到前端提示:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte

生成验证码的代码:

class VerifyCode:

def generate(self):

# 1)、创建画布

im = Image.new("RGB",(self.width,self.height),self.__rand_color(150))

self.pen = ImageDraw.Draw(im)

# 2)、生成验证码字符串

self.rand_string()

# 3)、画验证码

self.__draw_code()

# 4)、画干扰点

self.__draw_point()

# 5)、画干扰线

self.__rand_line()

# 6)、返回验证码图片

# 缓冲区

buf = BytesIO()

# 把图片放到缓冲区

im.save(buf,'png')

# 获取图片的二进制

res = buf.getvalue()

buf.close()

return res

vc = VerifyCode()

views:

class UserRegisterView(CreateAPIView, ListAPIView):

"""

post:

进行注册

get:

获取验证码

"""

queryset = Users.objects.all()

serializer_class = UsersRegisterSerializer

def post(self, request, *args, **kwargs):

pass

def get(self, request, *args, **kwargs):

verifyimg = vc.generate()

code = vc.code

return Response({

'img': verifyimg,

'code': code

})

可以生成图片,图片在我本地也可以正常显示,但是返回给前端的时候会报一个编码错误,错误出在get的Response中。试过先将verifyimg提前decode再返回,然而在decode这步就会出现这个错误。

以上是 django rest-framework返回图片到前端提示: UnicodeDecodeError请问这是为什么? 的全部内容, 来源链接: utcz.com/a/164087.html

回到顶部