我将简要解释一下我目前的状况。
app1& app2是破折号应用程序,每5秒重新加载一次。基本上,一切正常。但是当我通过点击我的bootstrap导航菜单上的app2按钮移动到app2标签时,我仍然可以看到下面的消息。
127.0.0.1 - - [21/Jan/2018 01:17:00] "POST /app1/_dash-update-component HTTP/1.1" 200 -
127.0.0.1 - - [21/Jan/2018 01:17:00] "POST /app2/_dash-update-component HTTP/1.1" 200 -
127.0.0.1 - - [21/Jan/2018 01:17:03] "POST /app1/_dash-update-component HTTP/1.1" 200 -
127.0.0.1 - - [21/Jan/2018 01:17:03] "POST /app2/_dash-update-component HTTP/1.1" 200 -
127.0.0.1 - - [21/Jan/2018 01:17:05] "POST /app1/_dash-update-component HTTP/1.1" 200 -
问题是,即使我已经离开app1菜单,app1似乎也会保持清爽。
实际上,我已经迷失在这里,我的脑子里再也没有什么了。我应该改变组合破折号应用程序和烧瓶应用的方式吗?或者有没有什么好方法可以在用户观看app2 dash应用程序时暂停app1?
谢谢。
app_main.py
from werkzeug.wsgi import DispatcherMiddleware
from flask_bootstrap import Bootstrap
import app1
import app2
flask_app = flask.Flask(__name__)
server = DispatcherMiddleware(flask_app, {
'/app1': app1.app_dash.server,
'/app2': app1.app_dash.server,
})
Bootstrap(flask_app)
的index.html
...
<div id="app1" class="tab-pane fade">
<object data="/basic_chart"></object>
</div>
<div id="app2" class="tab-pane fade">
<object data="/balance_chart"></object>
</div>
...
app1.py
...
app_dash.layout = html.Div([
dcc.Interval(
id='interval-component',
interval=5e3, # in milliseconds
n_intervals=0
),
html.Div([
dcc.Graph(
id='graph_stream',
),
]),
...
答案 0 :(得分:1)
您可以使用DispatcherMiddleware
和/app1
来开发单页应用,而不是使用dash_core_components.Location
和dash_core_components.Link
这样的路线。