django 流式输出示例
时间: 2024-09-16 10:00:17 浏览: 52
django-eventstream:Django的服务器发送事件
在Django框架中,流式输出(Streaming Response)允许你在不一次性加载整个页面内容到内存的情况下发送响应。这在处理大量数据、生成动态内容或者需要分块传输文件时非常有用。下面是一个简单的流式输出示例,我们将创建一个无限滚动的博客列表:
```python
from django.http import StreamingHttpResponse
from itertools import islice
# 假设我们有一个BlogPost模型
def infinite_blog_list(request):
# 获取所有文章,这里仅为了演示,实际应用可能需要查询数据库
all_posts = BlogPost.objects.all()
def generate():
for post in all_posts:
yield f'<li>{post.title}</li>\n'
response = StreamingHttpResponse(generate(), content_type='text/html')
response['Content-Length'] = '0' # 告诉浏览器响应长度未知,会一直读取
response['X-Accel-Buffering'] = 'no' # 防止浏览器缓存
return response
阅读全文