Django中如何实现文件下载的三种具体方法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计263个文字,预计阅读时间需要2分钟。
方法一:使用HttpResponse从django.shortcuts导入,定义函数file_down(request),打开文件,创建HttpResponse对象,设置Content-Type为'a'。代码如下:
pythonfrom django.shortcuts import HttpResponse
def file_down(request): file=open('/home/amarsoft/download/example.tar.gz', 'rb') response=HttpResponse(file) response['Content-Type']='a'
方法一:使用HttpResponse
from django.shortcuts import HttpResponse
def file_down(request):
file=open(‘/home/amarsoft/download/example.tar.gz‘,‘rb‘)
response =HttpResponse(file)
response[‘Content-Type‘]=‘application/octet-stream‘
response[‘Content-Disposition‘]=‘attachment;filename="example.tar.gz"‘
return response
方法二:使用StreamingHttpResponse
from django.http import StreamingHttpResponse
def file_down(request):
file=open(‘/home/amarsoft/download/example.tar.gz‘,‘rb‘)
response =StreamingHttpResponse(file)
response[‘Content-Type‘]=‘application/octet-stream‘
response[‘Content-Disposition‘]=‘attachment;filename="example.tar.gz"‘
return response
方法三:使用FileResponse
from django.http import FileResponse
def file_down(request):
file=open(‘/home/amarsoft/download/example.tar.gz‘,‘rb‘)
response =FileResponse(file)
response[‘Content-Type‘]=‘application/octet-stream‘
response[‘Content-Disposition‘]=‘attachment;filename="example.tar.gz"‘
return response
总结:对比 虽然使用这三种方式都能实现,但是推荐用FileResponse, 在FileResponse中使用了缓存,更加节省资源。 虽说是三种方式,但是原理相同,说白了就是一种方式。
本文共计263个文字,预计阅读时间需要2分钟。
方法一:使用HttpResponse从django.shortcuts导入,定义函数file_down(request),打开文件,创建HttpResponse对象,设置Content-Type为'a'。代码如下:
pythonfrom django.shortcuts import HttpResponse
def file_down(request): file=open('/home/amarsoft/download/example.tar.gz', 'rb') response=HttpResponse(file) response['Content-Type']='a'
方法一:使用HttpResponse
from django.shortcuts import HttpResponse
def file_down(request):
file=open(‘/home/amarsoft/download/example.tar.gz‘,‘rb‘)
response =HttpResponse(file)
response[‘Content-Type‘]=‘application/octet-stream‘
response[‘Content-Disposition‘]=‘attachment;filename="example.tar.gz"‘
return response
方法二:使用StreamingHttpResponse
from django.http import StreamingHttpResponse
def file_down(request):
file=open(‘/home/amarsoft/download/example.tar.gz‘,‘rb‘)
response =StreamingHttpResponse(file)
response[‘Content-Type‘]=‘application/octet-stream‘
response[‘Content-Disposition‘]=‘attachment;filename="example.tar.gz"‘
return response
方法三:使用FileResponse
from django.http import FileResponse
def file_down(request):
file=open(‘/home/amarsoft/download/example.tar.gz‘,‘rb‘)
response =FileResponse(file)
response[‘Content-Type‘]=‘application/octet-stream‘
response[‘Content-Disposition‘]=‘attachment;filename="example.tar.gz"‘
return response
总结:对比 虽然使用这三种方式都能实现,但是推荐用FileResponse, 在FileResponse中使用了缓存,更加节省资源。 虽说是三种方式,但是原理相同,说白了就是一种方式。

