所以我最近一直在 Django 中处理一些代码,但我不确定如何处理我遇到的代码问题。我正在尝试使用上下文流式传输模板,并且该上下文会根据某个变量的值而变化,然后在一段时间后将重新运行该函数以检查变量的值是否已更改。但是,这是我遇到问题的地方。模板在浏览器中加载时会中断,并且浏览器会不断尝试加载模板,直到终端中出现“Broken Pipe”错误。
到目前为止,我想到的一种解决方案是先渲染模板,然后流式传输上下文。所以我一直在考虑在 Django 中创建一个上下文处理器,它根据前面提到的变量的值为模板流式传输上下文。如果这是可能的,那么这样做的好方法是什么?
感谢您提供任何帮助或建议。
如果有帮助,这是我一直在使用的代码:
from django.shortcuts import render, render_to_response
from django.template import loader, Context
from django.http import StreamingHttpResponse
import time
from .models import prototype
def scan():
name = 'server_1.html'
t = loader.get_template(name)
count = 60
r = 1
g = 2
b = 3
i = 0
while True:
if i == g:
print 'Loading Template...'
yield t.render(Context({'green' : True}))
time.sleep(count)
if i == r:
print 'Loading Template...'
yield t.render(Context({'red' : True}))
time.sleep(count)
if i == b:
print 'Loading Template...'
yield t.render(Context({'blinking' : True}))
time.sleep(count)
else:
print 'Loading Template...'
yield t.render()
time.sleep(count)
def home(request):
response = StreamingHttpResponse(scan())
return response