首页 > 编程知识 正文

python爬虫下载文件(python实现文件下载)

时间:2023-05-05 20:44:59 阅读:105549 作者:4638

在上一篇文章中,我们讨论了如何用python上传文件和操作文件属性。本文向您展示了如何在django框架下下载文件。

下载:最简单的方法

django最简单的下载方式

这种方法适用于小文件。如果文件很大,会消耗内存。

django中的HttpResponse对象可以将迭代器作为参数传递,这样就可以用迭代器替换上面的C,从而防止文件过大时下载失败。

但是,在django中,更推荐使用StreamingHttpResponse对象,它以流式方式将文件发送到浏览器。

检查django框架的源代码,比较HttpResponse和StreamingHttpResponse:

http响应源代码

StreamingHttpResponse源代码

源代码中的注释非常清楚。httpResponse是返回一个字符串作为内容。StreamingHttpResponse是将内容作为迭代器返回给客户端。

因此,修改上面的代码,将读取的文件作为迭代器写入,然后将这个迭代器作为参数传递给streamingHttpResponse对象:

Django实现文件下载功能。

您已经看到上面两行代码:

这是定义文件流的格式类型,响应[' content-type ']=' application/octet-stream '是二进制流数据(常见文件下载)。

响应['内容-处置']='附件;Filename='xxx ',这是设置显示的文件名。

至此,文件下载功能已经实现。

扩展思维:

如果想限制用户下载,只允许有权限的用户下载,该怎么办?

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。