Django:实时记录到浏览器

时间:2015-04-23 23:49:16

标签: django echo real-time

在PHP中,我曾经能够使用echo命令并实时查看脚本。

例如:

Applying settings to 001...
* a second later *
Applying settings to 002...

这将在浏览器中向用户显示。 无论如何我可以在Django中使用像echo这样的命令吗? 很高兴知道我的应用程序实际上正在做某事并看到进展。

1 个答案:

答案 0 :(得分:2)

  

很高兴知道我的应用程序实际上正在做某事并看到进展。

我假设您想要通知实际用户一些长时间运行的任务的进度,而不仅仅是打印调试语句。至于调试或代码跟踪,请将Django的logging subsystemdjango-debugtoolbar结合使用。

  

有没有我可以在Django中使用像echo这样的命令?

自Django 1.5以来,有一种StreamingHttpResponse允许你在某些情况下模仿php的echo行为。

但是,请考虑文档中的内容:

  

Django专为短期请求而设计。流响应将在整个响应期间将工作进程联系起来。这可能会导致性能不佳。

那就是example

<强>真的吗

请注意,在任何HTTP请求/响应驱动的上下文(Django专为其设计)中,推荐和稳定的方式是使用像Celery这样的异步任务处理器对于任何长期存在的过程。然后使用轮询客户端检查进度,例如正如本answer中提出的那样。