快速上手Django(九) –django 上传文件request.FILES,下载文件
一、Django下载文件
在实际的项目中很多时候需要用到下载功能,如导excel、pdf或者文件下载。
1. Django下载文件方案和思路
2. HttpResponse、StreamingHttpResponse和FileResponse区别和选择
Django 提供三种方式实现文件下载功能,分别是:HttpResponse、StreamingHttpResponse和FileResponse
HttpResponse 实现文件下载存在很大弊端,其工作原理是将文件读取并载入内存,然后输出到浏览器上实现下载功能。如果文件较大,该方法就会占用很多内存。对于下载大文件,Django推荐使用StreamingHttpResponse 和FileResponse 方法,这两个方法将下载文件分批写入服务器的本地磁盘,减少对内存的消耗。
StreamingHttpResponse和FileResponse对象的对比和选择
StreamingHttpResponse对象需要一个生成器函数来按需生成要发送的数据块。FileResponse对象支持直接读取文件并以块的形式生成响应数据。
由于FileResponse对象使用Python内置的文件迭代器进行分块传输,因此它对文件大小有一定的限制(默认情况下为django.http.response.FILE_CHUNK_SIZE配置)。如果您需要传输超过该限制的文件,则需要使用StreamingHttpResponse对象进行流式传输。
使用HttpResponse
使用StreamingHttpResponse
生成器函数
使用FileResponse
django 使用FileResponse限制文件下载大小
3. postman下载文件请求
postman报错 Maximum response size reached
二、django 上传文件request.FILES
三、Django 读取excel里的数据导入到数据库表中(使用第三方库openxl)
django+xlsxwriter导出excel
四、参考
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。