Django DB在模型中存储上传的文件是否有效?

时间:2015-09-25 02:32:36

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

我有一个表单,如果我使用form.save()存储文件,整个文件内容是存储在DB中还是仅存储在文件路径中?

假设我有数十万或数百万个文件。将所有这些存储在DB中是否有效,因为表的大小必须很大?

如果我不想将它们存储在数据库中并进行简单上传并将它们保存在本地文件系统中,有什么方法可以获取所有文件名列表吗?通过将它们存储在数据库中,我只需通过:

AllDocument.objects.all()

谢谢!

3 个答案:

答案 0 :(得分:2)

实际上,默认情况下,django只存储db中文件的路径,而不存储文件本身,因此存储数百万个文件条目没有问题。 我不认为在其他地方存储文件路径是个好主意。至少,它比使用Django Manager更复杂。

答案 1 :(得分:2)

我认为Djanga将文件存储在媒体或静态根文件中,以及数据库中的路径。

答案 2 :(得分:1)

文件。

  

将附加到MEDIA_ROOT的本地文件系统路径   设置以确定url属性的值。

我认为这可以帮助您澄清问题。 文件上传字段。 FileField

  

该文件是作为将模型保存在数据库中的一部分保存的,所以   直到之后才能依赖磁盘上使用的实际文件名   模型已保存。

FileField and FieldFile