python云端系统开发(Django)MOOC笔记整理week3(C)Django的视图流式响应机制

Django的响应类型
一次响应类型:
HttpResponse类及子类
JsonResponse类

流式响应(适用于大文本文件传输,大二进制文件传输):
StreamingHttpResponse类
FileResponse类

实例:文件下载

(1)HttpResponse方式

文件内容一次性响应,仅适合小文件

def file_download(request):
	# do something...
	with open('data.txt') as f:
		c = f.read()
	return HttpResponse(c) 

(2)StreamingHttpResponse方式

将文件分段,每次传输一部分,分段大小可调
利用python的迭代器产生分段
可以是文件,也可以是任何大规模数据响应

from django.http import StreamingHttpResponse

def big_file_downlod(request):
	# do something...
	def file_iterator(file_name,chunk_size=512):
		with open(file_name) as f;
			while True:
				c = f.read(chunk_size)
				if c:
					yield c
				else:
					break
	
	fname = "data.txt"
	
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值