我正在使用Django创建一个网站,每次用户单击下载按钮时,我都希望下载对话框出现在浏览器中.我正在使用以下代码进行文件下载-
urllib.urlretrieve(filename)
在这种情况下,尽管正在下载文件,但是该过程在后台进行.此外,文件会在暂存Django项目的位置下载,因此无法控制文件的保存位置.如何在用户单击下载按钮后立即显示下载对话框,而不是在后台秘密开始下载过程?
解决方法:
response = HttpResponse(mimetype='text/csv')
response['Content-Disposition'] = 'attachment; filename=somefilename.csv'
您可以指定文件类型并将其设置为附件.
如果要在按钮上实现此功能,实际上我将有一个单独的视图来返回此文件响应.然后,您可以在模板中指定在按下按钮时调用该视图(确保链接到urls.py文件中的视图).它看起来像这样:
Download
实际上,不久前我也遇到了类似的问题-您可以看到以下几个类似的问题:here、at my question(我知道链接到我自己的问题很la脚,但我认为这可能对您有帮助)和here too.
如果您有任何疑问,请告诉我.
标签:python,django
来源: https://codeday.me/bug/20191102/1988434.html