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