Django 使用 models.ImageField 将 Base64 字符串保存到文件系统

Ton*_*czz 5 python django image imagefield

我正在尝试使用 python django 将图像上传到文件系统。我不知道如何进一步进行。

在我的 model.py 中:

Class Test(object):
    mission = models.TextField(blank=True)
    image = models.ImageField(upload_to='documents/images/',blank=True)
    account = models.OneToOneField(Account, related_name='account')
Run Code Online (Sandbox Code Playgroud)

在我看来.py

def add_image(request, account):
    req = get_request_json(request)
    data = Test.objects.add_image(account, req)
Run Code Online (Sandbox Code Playgroud)

在我的经理.py

Class TestManager(models.Manager):
    def add_image(self, account, input):
        acc = self.get(account=account)
        acc.save()

        return acc;
Run Code Online (Sandbox Code Playgroud)

但我不知道如何从这里继续。

我想知道如何将base64图像字符串保存到指定位置并将路径/文件名存储到数据库中?

我使用 python 将文件写入目录并获取路径并存储在数据库中。这里我想使用 django 选项。

我也必须对其他文件格式重复相同的过程。

Dal*_*tor 7

如果您有一个 base64 字符串格式的图像,并且想要将其保存到模型 ImageField,这就是我要做的

import base64
from django.core.files.base import ContentFile

image_b64 = request.POST.get('image') # This is your base64 string image
format, imgstr = image_b64.split(';base64,')
ext = format.split('/')[-1]
data = ContentFile(base64.b64decode(imgstr), name='temp.' + ext)
Run Code Online (Sandbox Code Playgroud)

现在,你可以简单地做

Test.objects.create(image=data)
Run Code Online (Sandbox Code Playgroud)