Django DB在model中存储上传的文件效率高吗?

Django Is it efficient for DB to store uploaded files in model?

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

假设我有数十万或数百万个文件。由于 table 的大小必须很大,将它们全部存储在数据库中是否有效?

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

AllDocument.objects.all()

谢谢!

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

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

博士

A local filesystem path that will be appended to your MEDIA_ROOT setting to determine the value of the url attribute.

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

The file is saved as part of saving the model in the database, so the actual file name used on disk cannot be relied on until after the model has been saved.

FileField and FieldFile