0
這可能是一個簡單的問題,但我無法找到解決方案。 Django提供了很多關於上傳文件的信息,但我該如何下載文件。用Django下載文件
我們假設我們在uploads/something.txt
上有一個HTML按鈕作爲文件。我試過django.views.static.serve
,但是這樣做會在網頁上打開一個文件。
我的問題很簡單:我們網站的用戶下載文件的最佳和最pythonic方式是什麼?
這可能是一個簡單的問題,但我無法找到解決方案。 Django提供了很多關於上傳文件的信息,但我該如何下載文件。用Django下載文件
我們假設我們在uploads/something.txt
上有一個HTML按鈕作爲文件。我試過django.views.static.serve
,但是這樣做會在網頁上打開一個文件。
我的問題很簡單:我們網站的用戶下載文件的最佳和最pythonic方式是什麼?
HttpResponse
和適當的內容類型。下面是一些示例代碼:
content = open("uploads/something.txt").read()
return HttpResponse(content, content_type='text/plain')
這應該成爲一個文本文件。
但正如您所描述的那樣,在某些瀏覽器上,它不會要求下載該文件,而是會將其顯示在瀏覽器中。如果你想顯示下載提示,使用此:
response = HttpResponse(open("uploads/something.txt", 'rb').read())
response['Content-Type'] = 'text/plain'
response['Content-Disposition'] = 'attachment; filename=DownloadedText.txt'
return response
但是,請注意,這可能是一個更好的主意,通過nginx的或您所選擇的反向代理提供靜態內容或上傳的文件。通過Django發送大文件可能不是最佳的方式。
是的,這是絕對正確的。 –