将照片从Android设备上传到Django后端并保存到数据库

将照片从Android设备上传到Django后端并保存到数据库,android,python,django,easy-thumbnails,Android,Python,Django,Easy Thumbnails,我必须从Android设备上传一个图像到一个用Python和Django编写的web应用程序。为了存储图像,我使用了简易缩略图 到目前为止,我所做的是将图像转换为base64字符串,并将其发布到服务器。这很好,如果我将base64字符串写入png图像文件,也会很顺利 现在,我想将其保存到数据库中,据我所知,简易缩略图将实际文件保存到应用程序文件结构中服务器上的某个位置,并在数据库中保存指向该文件的链接 我不明白,如何将POST中收到的base64字符串保存到数据库中 我的模型: class Re

我必须从Android设备上传一个图像到一个用Python和Django编写的web应用程序。为了存储图像,我使用了简易缩略图

到目前为止,我所做的是将图像转换为base64字符串,并将其发布到服务器。这很好,如果我将base64字符串写入png图像文件,也会很顺利

现在,我想将其保存到数据库中,据我所知,简易缩略图将实际文件保存到应用程序文件结构中服务器上的某个位置,并在数据库中保存指向该文件的链接

我不明白,如何将POST中收到的base64字符串保存到数据库中

我的模型:

class Register(models.Model): 
   image = ThumbnailerImageField(upload_to=filename, blank=True, null=True, max_length=2048)

def filename(inst, fname):
   f = sha256(fname + str(datetime.now())).hexdigest()
   return '/'.join([inst.__class__.__name__, f])

图像未存储在数据库中。它存储在磁盘上。数据库中只存储对文件的引用

def Article(models.model):
    image = models.ImageField(...)
在某个位置创建新对象:

from django.core.files.base import ContentFile

obj = Article()
data = base64.b64decode(encoded)
# You might want to sanitise `data` here...
# Maybe check if PIL can read the `data`?
obj.image.save('some_file_name.ext', ContentFile(data))
obj.save()

我知道文件存储在文件系统中,只有一个链接存储在数据库中。你的解决方案完美无瑕。将其作为web应用程序的一部分很简单,只需使用表单即可。作为一个Android的东西,我不知道该怎么做。非常感谢。