在base64 django rest框架中保存图像

Save image in base64 django rest framework

我正在开发我的应用程序(混合),在注册页面上我必须将所有数据发送到使用 Django Rest Framework 制作的 API。

问题是我发送个人资料图片的唯一方法是 base64 编码字符串。但是我的服务器上需要 jpg 格式的图像。有人知道我该怎么做吗?

这是我的api视图:

 class CreateUserView(generics.CreateAPIView):
    serializer_class = UserSerializer
    permission_classes = [AllowAny]
    queryset = User.objects.all().order_by('-date_joined')
    def post(self, request, *args, **kwargs):
        error = 0
        data = request.data

        try:
            name = data['name']
        except KeyError:
            name = ""

        try:
            last_name = data['last_name']
        except KeyError:
            last_name = ""

        # IMAGE IN BASE64    
        try:
            profile_picture = data['profile_picture']
        except KeyError:
            profile_picture = ""

        try:
            username = data['username']
        except KeyError:
            username = ""

        try:
            created_user = User.objects.create(
                first_name = nombre,
                last_name = last_name,
                username = username
            )

            # created_user.set_password(password)
            created_user.save()
            token = Token.objects.create(user=created_user)
        except IntegrityError:
            error = 1

        return Response(error)

这是我的序列化程序:

class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ('url', 'username', 'first_name', 'last_name', 'email', 'groups')

有什么方法可以获取 base64 并创建一个 jpg

您可以简单地使用 base64.decodestring:

from base64 import decodestring

fh = open("imageToSave.jpeg", "wb")
fh.write(str(base64_string).decode('base64')) # or fh.write(decodestring(base64_string))
fh.close()