当前位置 : 主页 > 编程语言 > python >

django 中实现文件下载的3种方式

来源:互联网 收集:自由互联 发布时间:2021-06-25
方法一:使用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 ‘ ]= ‘ 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中使用了缓存,更加节省资源。 虽说是三种方式,但是原理相同,说白了就是一种方式。
网友评论