1

我正在尝试使用 javascript 绘图库来绘制我在 python 控制台(IPython)中使用 Numpy 计算的数据。

我在想一个设计来完成这个。我认为它应该看起来像这样:

在此处输入图像描述

这意味着我正在使用 Flask 应用程序在 IPython 进程中准备好数据后立即向客户端发送服务器端事件。

1)这是正确的方法吗?

2) 如何将数据从控制台发送到我的 Flask 应用程序?我想我需要用 gevent 运行 Flask 应用程序,这样我才能收听来自其他 python 进程的命令?

3)如何使用服务器端事件将数据发送到客户端?我发现了一些服务器端事件的例子,但我看不出它们如何发送任意数据。例子:

import gevent
import gevent.monkey
from gevent.pywsgi import WSGIServer
gevent.monkey.patch_all()

from flask import Flask, request, Response, render_template

app = Flask(__name__)

def event_stream():
    count = 0
    while True:
        gevent.sleep(2)
        yield 'data: %s\n\n' % count
        count += 1

@app.route('/my_event_source')
def sse_request():
    return Response(
            event_stream(),
            mimetype='text/event-stream')

@app.route('/')
def page():
    return render_template('sse.html')

if __name__ == '__main__':
    http_server = WSGIServer(('127.0.0.1', 8001), app)
    http_server.serve_forever()

此示例使用预定义的 event_stream() 函数。我正在寻找一种将带有服务器端事件的数据从 python 控制台发送到客户端的方法。

也许还有另一种更好的方法?

4

1 回答 1

0

$ipython console普通 IPython 终端 ( $ipython) 的 (zmq 控制台) 吗?为什么不直接使用 IPython Notebook?

(笔记本、QT 和 zmq 控制台可以允许第三个程序监听内核发布的事件)。

查看IPEP 21 和当前的实现建议,即双向内核<-> js 通信。

您是否看过continuum中的散景,似乎几乎可以满足您的要求?

(图像中的 IPython 也不是 iPython,但这是一个细节)

于 2013-10-09T12:01:21.140 回答