2015-09-25 72 views
1

我有一個表格,如果我使用form.save()存儲文件,整個文件內容是存儲在數據庫中還是隻存儲在文件路徑中?Django DB是否有效地將上傳的文件存儲在模型中?

假設我有數十萬或數百萬個文件。將它們全部存儲在數據庫中是否有效,因爲表的大小必須很大?

如果我不想將它們存儲在數據庫中並簡單上載並將它們保存在本地文件系統中,是否有任何方法可以獲取所有文件名的列表?通過將它們存儲在數據庫中,我只需通過:

AllDocument.objects.all() 

謝謝!

+0

你有閱讀文檔的Django的['FileField'(https://docs.djangoproject.com/en/1.8/ref/models/fields/#filefield)? – IanAuld

回答

2

實際上,默認情況下,django只存儲db中文件的路徑,而不是文件本身,所以存儲甚至數百萬個文件條目都沒有問題。 我不認爲在其他地方存儲文件路徑是個好主意。至少,它會比使用Django Manager更復雜。

2

我認爲Djanga存儲媒體或靜態根文件中的文件,以及db中的路徑。

1

Doc。

本地文件系統路徑將被附加到您的MEDIA_ROOT 設置中以確定url屬性的值。

,我認爲這可以幫助你,以澄清問題。 文件上傳字段。 FileField

將文件保存爲保存在數據庫中的模型的一部分,所以在磁盤上使用的 實際文件名不能依賴,直至 模型已被保存後。

FileField and FieldFile

相關問題