Python 将文件作为base64编码字符串存储在数据库中

Python 将文件作为base64编码字符串存储在数据库中,python,django,django-models,Python,Django,Django Models,我使用以下模型在django应用程序的数据库中存储文件: class Data(BaseModel): _data = models.TextField( db_column='data', blank=True) def set_data(self, data): self._data = base64.encodestring(data) def get_data(self): ret

我使用以下模型在django应用程序的数据库中存储文件:

class Data(BaseModel):
    _data = models.TextField(
            db_column='data',
            blank=True)

    def set_data(self, data):
        self._data = base64.encodestring(data)

    def get_data(self):
        return base64.decodestring(self._data)
    item = models.OneToOneField(Item)
    data = property(get_data, set_data)
我可以轻松地保存这些对象,而不会出现任何问题:

form = ItemForm(request.POST)
if form.is_valid():
    try:
        file = request.FILES['file']
    except MultiValueDictKeyError:
        errors = form._errors.setdefault(forms.forms.NON_FIELD_ERRORS, forms.util.ErrorList())
        errors.append("select file")
    else:
        item = form.save()
        item.filename = file.name
        item.save()

        blob = Data(item=item)
        blob.data = file.read()
        blob.save()

然而,我无法读取这样的编码数据。我尝试使用以下方法将此类文件保存到文件系统:

        #save test
        new_filename = 'new_%s'%(item.filename,)
        a = open(new_filename,'w')
        a.write(blob.data)
        a.close()
我使用了一个图像作为测试文件,当运行上面的代码时,我无法打开这样的图像,它是不正确的。
我做错了什么?

在pythonhower中使用文件时,我无法读取此类编码数据。进一步解释。当我试图将这些数据保存到与原始文件同名的文件中时,例如,数据是不相关的损坏图像。我检查了在执行a.writeblob.data时保存的数据,其中包含一些未正确解码的base64。不知道为什么