为什么Flask SSE演示不适用于stream_template?

时间:2014-07-07 05:32:01

标签: python flask server-sent-events

我正在努力让SSE(服务器发送事件)演示在烧瓶中工作。

@app.route('/sse-demo')
def sse():
    def delay():
        for i, c in enumerate("hello"*10):
            time.sleep(.5)  # an artificial delay
            yield i, c
    # with render_template it works!
    #return render_template('sse_demo.html', data=g())
    # with stream_template it doesn't work!
    return Response(stream_template('sse_demo.html', data=delay()))

我的 sse_demo.html 模板如下所示

<!doctype html>
<title>Send javascript with template demo</title>
<script src="/static/js/jquery.min.js"></script>
<style>
  #data {
    text-align: center;
  }
</style>
<div id="data">nothing received yet</div>
{% for i, c in data: %}
<script>
  $("#data").text("{{ i }} {{ c }}")
</script>
{% endfor %}    

render_template 可以正常使用。我看/ / sse-demo url打印 1小时 49 o

但是使用 stream_template ,我的页面会等待一段时间并打印 49 o

为什么?

0 个答案:

没有答案