У меня есть множество файлов Bokeh Server в каталоге, скажем .. /dir/bokeh/
, предположим, что серверы Bokeh называются bokeh1.py, bokeh2.py, bokeh3.py
Структура файла выглядит примерно так:
|--dir
|---flask.py
|---bokeh
|--bokeh1.py
|--bokeh2.py
Я размещаю их на фляге вот так:
files=[]
for file in os.listdir("/dir/bokeh/"):
if file.endswith('.py'):
file="bokeh/"+file
files.append(file)
argvs = {}
urls = []
for i in files:
argvs[i] = None
urls.append(i.split('\\')[-1].split('.')[0])
host = 'myhost.com'
apps = build_single_handler_applications(files, argvs)
bokeh_tornado = BokehTornado(apps, extra_websocket_origins=["myhost.com"])
bokeh_http = HTTPServer(bokeh_tornado)
sockets, port = bind_sockets("myhost.com", 0)
bokeh_http.add_sockets(sockets)
Тогда для каждого сервера Bokeh у меня есть в пределах flask.py
:
@app.route("/bokeh1")
def bokeh1():
bokeh_script = server_document("http://11.111.11.111:%d/bokeh1" % port)
return render_template("bokserv.html", bokeh_script=bokeh_script)
Количество серверов bokeh, которые мне нужно развернуть, может быстро возрасти. Как я могу написать что-то, что сгенерирует @app.route
для каждого из боке bokeh1.py, bokeh2.py, bokeh3.py
, эффективно основываясь на моей текущей настройке? Сервер работает на Ubuntu