首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Django视图return vs yield?

Django视图return vs yield?
EN

Stack Overflow用户
提问于 2018-09-19 18:08:39
回答 1查看 2.4K关注 0票数 2

这可能是一个非常奇怪或愚蠢的问题,但是为什么我不能在Django视图中使用yield而不是return呢?

假设我有一个简单的视图:

代码语言:javascript
运行
复制
def return_index(request):
    return render(request, 'index.html')

为什么下一个视图在Django中不起作用:

代码语言:javascript
运行
复制
def yield_index(request):
    list_of_templates = ['index.html', 'foo.html', 'bar.html']
    for i in range(len(list_of_templates)):
        time.sleep(5)
        yield render(request, list_of_templates[i])

假设yield_index视图每5秒返回一次不同的视图。

EN

回答 1

Stack Overflow用户

发布于 2018-09-19 18:25:52

使用StreamingHttpResponse

例如在view.py

代码语言:javascript
运行
复制
import time
from django.http import StreamingHttpResponse
# Create your views here.
def yield_index(t):
    list_of_templates = ['index.html', 'foo.html']
    for i in range(len(list_of_templates)):
        time.sleep(t)
        yield list_of_templates[i] #render(request, list_of_templates[i])

def home(request):
    return StreamingHttpResponse(yield_index(5))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52403371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档