在Django的mi视图中加入图像

问题描述 投票:0回答:1

实际上原始图像已保存在我的下载文件中,但是我需要使用模型“ programas”的“ nombre”将图像存储在数据库中,而不是在我的下载文件中

我的模特:

class programas(models.Model):
    id = models.AutoField(primary_key=True)
    nombre = models.CharField('Nombres',max_length=50, blank= True)
    horas = models.CharField('Horas',max_length=50, blank= True)
    creditos = models.CharField('Creditos',max_length=50, blank= True)
    imagen = models.ImageField(blank=True, null=True)

我的看法:

def registroPrograma(request):
    if request.method == 'POST':
        form = ProgramaForms(request.POST, request.FILES)
        if form.is_valid():

            programas = form.save(commit=False)
            programas.creditos= request.user
            imagen = qrcode.make('Hola Iver!')
            img = Image.open(programas.imagen)
            img = img.resize((2500, 2500), Image.ANTIALIAS)
            img = img.convert('JPG')
            img.paste(imagen, (0, 0))
            x = img.save("/Downloads/hola.jpg")
            programas.imagen = img.paste(imagen, (0, 0))
            form.save()
        return redirect('principio')
    else:
        form = ProgramaForms()
    return render(request,'registrar_programa.html', {'form':form})
python django
1个回答
0
投票

首先,这应该是您在使用django进行专业操作时会记住的代码,如果表单有效,则在视图上加入图像会增加很多等待时间,因为您正在那里使用文件,从不这样做,使用文件应该不在主线程或进程中,这就是Celery存在的原因。

其次,将文件存储在数据库中是一种不良的性能实践,但是文档BinaryField中对此有here的描述。

尽管您可能会考虑将文件存储在数据库中,但在99%的情况下,请认为这是错误的设计。此字段不能替代适当的静态文件处理。

请重新考虑改用您的应用程序,这将确保更好的可伸缩性和可维护性。

© www.soinside.com 2019 - 2024. All rights reserved.