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发送大文件可能不是最佳的方式。
是的,这是绝对正确的。 –