django-迭代返回render_to_响应

django-迭代返回render_to_响应,django,subprocess,render-to-response,Django,Subprocess,Render To Response,我想读一个文件,更新网站,读更多的行,更新网站等…逻辑如下,但它不工作。 它只显示日志文件的第一行并停止。有没有一种方法可以迭代“return render_to_response” #django视图调用将输出附加到日志文件的远程python脚本 proc=subprocess.Popen([程序、分支、服务、版本、节点列表]) 日志文件='text.log' fh=打开(日志文件'r') 而proc.poll()==无: 其中=fh.tell() 行=fh.read() 如果不是直线: 时间

我想读一个文件,更新网站,读更多的行,更新网站等…逻辑如下,但它不工作。 它只显示日志文件的第一行并停止。有没有一种方法可以迭代“return render_to_response”

#django视图调用将输出附加到日志文件的远程python脚本
proc=subprocess.Popen([程序、分支、服务、版本、节点列表])
日志文件='text.log'
fh=打开(日志文件'r')
而proc.poll()==无:
其中=fh.tell()
行=fh.read()
如果不是直线:
时间。睡眠(1)
fh.seek(其中,os.seek_集)
其他:
输出=cgi.escape(行)
输出=行。替换('\n\r','
')) 返回render_to_response('hostinfo/deployservices.html',{'response':output})

感谢您的帮助。

将第一批提交到网站并停止。然后,如果你想发送下一批,网站必须以某种方式再次调用此视图。您还必须在日志文件中保留您所在位置的记录,以便从该点读取第二批数据。
我假设您在模板中有一些逻辑,以便第二篇文章呈现\u to \u响应不会覆盖第一篇

如果你的数据不是很大,你应该在每次阅读新行的时候,把你想在网页上显示的全部内容发送出去

不要重新发明轮子,而是使用

你实际上可以这样做,把你的函数变成一个生成器——也就是说,用“收益率”返回每一行


但是,您需要直接创建响应,而不是使用“渲染到响应”

哇。每次调用只能从函数返回一次。这甚至不是python的特例,您正在尝试做的事情很复杂,需要线程和AJAX轮询。。。很难完整回答。这是一个响亮的“不”,我想是:)。哦,好吧,我只是在试着寻找最简单的答案。回到谷歌搜索板。丹尼尔,你能给我更多的提示吗:)。看看这个:因为日志会很小,我在考虑聚合输出'output+=line',并每次更新…因为日志很小,我仍然建议使用简单的解决方案,每次重新生成日志页。
proc = subprocess.Popen([program, branch, service, version, nodelist])
logfile = 'text.log'
fh = open(logfile, 'r')

while proc.poll() == None:
  where = fh.tell()
  line = fh.read()
  if not line:
     time.sleep(1)
     fh.seek(where,os.SEEK_SET)
  else:
     output = cgi.escape(line)
     output = line.replace('\n\r', '<br>')
     return render_to_response('hostinfo/deployservices.html', {'response': output})