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响应真快, 代码还少.真香
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
