2013-10-09 37 views
1

我想使用JavaScript繪圖庫來繪製我在Python控制檯(IPython)使用Numpy計算的數據。發送控制檯數據燒瓶應用程序顯示在客戶端

我在想一個設計來完成這個。我認爲應該是這個樣子:

enter image description here

這意味着我用的燒瓶中的應用盡快發送服務器端事件到客戶端的數據是在IPython的過程中做好準備。

1)這是正確的做法嗎?

2)如何將數據從控制檯發送到我的Flask應用程序?我想我需要用gevent來運行Flask App,這樣我才能聽到來自其他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控制檯發送到客戶端。

也許還有另一種更好的方法?

+0

你也可能想看看[文森特](https://vincent.readthedocs.org/en/latest/),其是專爲使用JS可視化Python數據而設計的。 –

回答

0

它是普通IPython終端($ipython)的$ipython console(zmq控制檯)? 爲什麼不直接使用IPython Notebook?

(筆記本,QT和zmq控制檯可以允許第三個程序監聽內核發佈的事件)。

看看IPEP 21 and current implementation proposal這是雙向內核<-> js通信。

你看過bokeh from continuum這幾乎是你想要的嗎?

(也IPython的不IPython中的圖像,但是這是一個細節)

相關問題