Jadeson Zang
Jadeson Zang

Reputation: 119

how can I open new tab in plotly dash?

I have the following code:

app.layout = html.Div([html.Button("Press", id = "newpage")])

@callback(Input("newpage", n_click))
def newPage(n: int):
     #Do something, open a new page and show "Hello" in that new page.

Thanks

Upvotes: 1

Views: 2272

Answers (1)

Jadeson Zang
Jadeson Zang

Reputation: 119

I think I partially find the solution, through flask/DispatcherMiddleware.

from dash import Dash
from werkzeug.wsgi import DispatcherMiddleware
import flask
from werkzeug.serving import run_simple
import dash_html_components as html

server = flask.Flask(name)
dash_app1 = Dash(name, server = server, url_base_pathname='/dashboard/' )
dash_app2 = Dash(name, server = server, url_base_pathname='/reports/')
dash_app1.layout = html.Div([html.H1('Hi there, I am app1 for dashboards')])
dash_app2.layout = html.Div([html.H1('Hi there, I am app2 for reports')])
@server.route('/')
@server.route('/hello')
def hello():
return 'hello world!'

@server.route('/dashboard')
def render_dashboard():
return flask.redirect('/dash1')

@server.route('/reports')
def render_reports():
return flask.redirect('/dash2')

app = DispatcherMiddleware(server, {
'/dash1': dash_app1.server,
'/dash2': dash_app2.server
})

run_simple('0.0.0.0', 8050, app, use_reloader=True, use_debugger=True)

Upvotes: 1

Related Questions