Django模块提供了3种文件按下载功能,分别应用HttpResponse,StreamingHttpResponse,FileResponse 这三个类
HttpResponse下载
def download1(request):
file_name=文件路径
try:
r=HttpResponse(open(file_name,'rb'))
r['content_type']='application'
r['Content-Disposition']='attachment;filename=文件路径'
return r
except:
raise Http404('下不了 爬')
StreamingHttpResponse下载
from django.shortcuts import render,HttpResponse,redirect,Http404
from django.http import FileResponse,StreamingHttpResponse
def download2(request):
file_name='你的文件路径'
try:
r=StreamingHttpResponse(open(file_name,'rb'))
r['content_type'] = 'application' #这里写的是数据类型
r['Content-Disposition'] = 'attachment;filename=文件路径'#两个参数
return r
except:
raise Http404('下载错误')#返回错误信息
File Response下载
def download3(request):
file_name='你的文件路径'
try:
r=FileResponse(open(file_name,'rb'),as_attachment=True,filename='文件路径')
return r
except:
raise Http404('下载错误')#返回错误信息
综上来看FileResposne文件下载应用比较简单,只需带3个数据即可完成下载功能,我们只需要掌握这一种就足够了,有什么想法可以在评论区讨论