这可能是一个很奇怪或愚蠢的问题,但是为什么我不能在Django视图中使用yield
而不是return
?
可以说我有一个简单的观点:
def return_index(request):
return render(request, 'index.html')
为什么下一个视图在Django中不起作用:
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秒返回一次不同的视图。
答案 0 :(得分:1)
例如在view.py
中:
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))