如何产生一个列表以将值流传输到flask?

时间:2018-11-15 09:41:08

标签: python python-3.x

我有这个列表,该列表是通过查询数据库动态生成的,但是出于这个问题的目的,我使用静态列表进行演示。

我想将值流式传输到网页,所以我认为最好使用生成器。下面是我的python代码:

list111 = [1,2,3,4,5]
for i in list111:
    def events():
        print(i)
        yield "data: %s\n\n" % (i)
    return Response(events(), content_type='text/event-stream')`

我希望这个脚本能打印1到5,但它会继续打印1。这是产生列表的错误方法吗?

这是我在客户端上使用的(仅供参考):

if (!!window.EventSource) {
  var source = new EventSource('/upload');
  console.log(source)
  source.onmessage = function(e) {
    console.log(e)
    var byte = e.data;
    console.log(e.data)
  }
}

1 个答案:

答案 0 :(得分:1)

@ L3viathan指出,我只在第一次迭代后返回。我需要返回的是事件函数内部的for循环。

 list111 = [1,2,3,4,5]
 def events():
     for i in list111:
        print(i)
        yield "data: %s\n\n" % (i)
 return Response(events(), content_type='text/event-stream')`