直接下载和内容处理下载之间的区别?

时间:2017-08-21 23:53:42

标签: python html django download

我是一名新的Django用户,请解释这两种下载选项中的专业人士和用户,

方法1:

<a href="/path/to/download/pleaseanswermyquestion.pdf">Download here</a

方法2:作为Django视图

def download(request):
    data = open('/path/to/download/pleaseanswermyquestion.pdf', 'rb')
    bdata = data.read()
    response['content-type'] = "pdf"
    response['content-disposition'] = "attachment; filename=%s" %(bdata)
    return response

PS:上面的python代码错了,但我只想知道从服务器下载文件的上述2个概念之间的区别

1 个答案:

答案 0 :(得分:0)

区别在于控制/安全。

通过简单的href,该文件通常可供任何人/任何人(网络蜘蛛机器人等)下载。

使用第二个,您可以要求身份验证/登录以下载文件,或者提供不同的文件(可能是基于登录用户动态生成的)或执行各种其他操作。但即使使用列出的代码 - 即提供静态文件 - 使用下载功能也可以轻松添加基本安全性,而不是使用href。

仅供参考,内容类型可能应为application/pdf