簡體   English   中英

如何從Django項目中彈出瀏覽器中的下載對話框?

[英]How to pop up download dialog box in browser from a Django project?

我正在使用Django創建一個網站,每次用戶點擊下載按鈕,我都希望下載對話框出現在瀏覽器中。 我使用以下代碼進行文件下載 -

urllib.urlretrieve(filename)

在這種情況下,雖然文件正在下載,但該過程在后台進行。 此外,文件會在Django項目暫存的地方下載,因此無法控制文件的保存位置。 如何在用戶單擊下載按鈕時立即顯示下載對話框,而不是在后台隱藏下載過程?

使用django返回附件應該可以達到此目的。 以下是將csv文件返回給用戶的示例。 在頁面頂部的示例中: https//docs.djangoproject.com/en/dev/howto/outputting-csv/?from = olddocs ,您可以通過設置查看

response = HttpResponse(mimetype='text/csv')
response['Content-Disposition'] = 'attachment; filename=somefilename.csv'

您可以指定文件類型並將其設置為附件。

如果你想在按鈕上實現這個,我實際上有一個單獨的視圖來返回這個文件響應。 然后,您可以在模板中指定在按下按鈕時調用該視圖(確保鏈接到urls.py文件中的視圖)。 它看起來像這樣:

<li  class = 'button'>
  <a  href = "{% url app.views.function %}"> 
       Download
  </a>
</li>

其實,我也有類似的問題,這不是很久以前-這里有幾個類似的問題,你可以看看這里我的問題 (我知道這是跛腳鏈接到我自己的問題,但我認為它可以幫助你),以及這里也是

如果您有任何疑問,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM