Django使用url拼接参数从linux下载文件

一、需求:从linux下/opt/data/susmgr/version/下下载文件在这里插入图片描述
二、解决思路:当然url要暴露参数,获取依据是下载端提供四个参数为条件,参数采取正则进行匹配;设置动态路由,另外response要求:Content-Type应设置oct-stream,Content-Dispostion应设置filename。
三、代码实现:
1.路由url:

url(r'download/([a-zA-Z]+)/([a-zA-Z]+)/([0-9\S\s]+)/([a-zA-Z\S\s]+)/$', views.file_down, name='file_down'),

2.view实现:

# 文件下载
def file_down(request,oem,devicetype,softver,filename):
    # return HttpResponse("p1 = " + oem + "; p2 = " + devicetype + "; p3 = " + softver + "; p4 = " + filename)
    file=open('/opt/data/susmgr/version/'+oem+'/'+devicetype+'/'+softver+'/'+filename,'rb')
    response =HttpResponse(file)
    response['Content-Type']='application/octet-stream'
    response['Content-Disposition'] = 'attachment;filename="%s"'%(filename)
    return response

3.暴露http://0.0.0.0:8000/api/v1/sus/download/kedacom/sdafas/2.0.0.0/text.zip
API供下载端传参。
参考文献:Django URL传递参数的方法总结

你可能感兴趣的:(Django,Django,URL传递参数的方法总结,django下载文件)