代码之家  ›  专栏  ›  技术社区  ›  Ziya ERKOC

flask bokeh gunicorn:模型必须由单个文档拥有

  •  2
  • Ziya ERKOC  · 技术社区  · 8 年前

    下面是一个代码,用于运行flask应用程序和bokeh服务器,灵感来自 flask_gunicorn_embed.py on Github .

    起初,它的工作方式很有魅力;但是,刷新页面后,就会出现此错误。

    模型只能由单个文档拥有:…(剩余部分被截断)

    顺便说一下,代码是用 gunicorn .
    也, create_figure() 函数返回 layout

    from Decision_Tree.Plot.decision_tree import create_figure
    if __name__ == '__main__':
        import sys
        sys.exit()
    
    app = Flask(__name__)
    
    
    def modify_doc(doc):
        # Create the plot
        plot = create_figure()
        # Embed plot into HTML via Flask Render
        doc.add_root(plot)
    
    bkapp = Application(FunctionHandler(modify_doc))
    
    # This is so that if this app is run using something like "gunicorn -w 4" then
    # each process will listen on its own port
    sockets, port = bind_sockets("x.x.x.x", 0)
    
    
    @app.route('/', methods=['GET'])
    def bkapp_page():
        script = server_document('http://x.x.x.x:%d/bkapp' % port)
        return render_template("index.html", script=script, template="Flask")
    
    
    def bk_worker():
        asyncio.set_event_loop(asyncio.new_event_loop())
    
        bokeh_tornado = BokehTornado({'/bkapp': bkapp}, extra_websocket_origins=["x.x.x.x:5000"])
        bokeh_http = HTTPServer(bokeh_tornado)
        bokeh_http.add_sockets(sockets)
    
        server = BaseServer(IOLoop.current(), bokeh_tornado, bokeh_http)
        server.start()
        server.io_loop.start()
    
    
    from threading import Thread
    Thread(target=bk_worker).start()
    

    期待任何帮助! P.S.域有意替换为X.X.X.X。

    1 回复  |  直到 8 年前
        1
  •  2
  •   bigreddot    8 年前

    modify_doc create_figure ColumnDataSource