如何使用models.FileField将文件保存在数据库中而不是上传到服务器媒体文件夹中?

时间:2019-05-16 10:50:46

标签: python django django-models django-forms django-database

我想将文件保存在数据库中,而不是将其上传到服务器媒体文件中,然后将URL保存在数据库中,我想直接将文件保存在数据库中。

现在我正在这样做:

model.py:

File = models.FileField(upload_to='CSR/', null=True , blank = True)

template.html:

<td> {{certificate.File.url}} </td>

1 个答案:

答案 0 :(得分:2)

Django支持BinaryField,可让您将二进制数据存储在数据库中。

Django docs状态:

  

滥用BinaryField

     

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

如果您不想将文件存储到Web服务器的文件系统中,则可以使用django-storages库,该库为Amazon S3,DigitalOcean等提供选项。