Python Django 返回临时文件实现不落盘

首先吐槽, Python的流概念确实拉稀,作为一名Java开发者,看着这个东西,真是当场爆炸

需求是这样,想要把文件写入临时文件,直接返回前端,
第一反应是临时文件解决,首先是临时文件在windows中创建之后是不能再次打开的.会报没有权限.可以设置不自动删除,那么又无法删除还是会落盘
第二反应是写入磁盘,读完之后再删除,然而在返回之前是无法删除的,否则不能正确读取返回.那咋整,定时任务?为了清理临时文件搞定时任务,不是很爽

最后在某个网站的不起眼的角落找到这段代码,完美解决

response = HttpResponse(content_type='application/octet-stream')
zip_file = zipfile.ZipFile(response, 'w')
zip_file.write(release.file_location, release.name)
zip_file.close()
response_name = os.path.splitext(release.name)[0] + '.zip'
response['Content-Disposition'] = 'attachment;filename="{0}"'.format(escape_uri_path(response_name))
return response

直接写入response.

python响应真快, 代码还少.真香

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值