def get_app(app): app = app dash.register_page( "multi_layout1", layout=html.Div("text for multi_layout1", id="text_multi_layout1"), path="/", title="Supplied Title", description="This is the supplied description", name="Supplied name", image="birds.jpeg", id="multi_layout1", ) dash.register_page( "multi_layout2", layout=html.Div("text for multi_layout2", id="text_multi_layout2"), path="/layout2", id="multi_layout2", ) app.layout = html.Div([ html.Div([ html.Div( dcc.Link( f"{page['name']} - {page['path']}", id=page["id"], href=page["relative_path"], )) for page in dash.page_registry.values() ]), dash.page_container, dcc.Location(id="url", refresh=True), ]) return app
def test_inin027_multi_page_without_pages_folder(dash_duo): app = Dash(__name__, pages_folder="") # test for storing arbitrary keyword arguments: An `id` prop is defined for every page # test for defining multiple pages within a single file: layout is passed directly to `register_page` # in the following two modules: dash.register_page( "multi_layout1", layout=html.Div("text for multi_layout1", id="text_multi_layout1"), path="/", title="Supplied Title", description="This is the supplied description", name="Supplied name", image="birds.jpeg", id="multi_layout1", ) dash.register_page( "multi_layout2", layout=html.Div("text for multi_layout2", id="text_multi_layout2"), path="/layout2", id="multi_layout2", ) app.layout = html.Div([ html.Div([ html.Div( dcc.Link( f"{page['name']} - {page['path']}", id=page["id"], href=page["path"], )) for page in dash.page_registry.values() ]), dash.page_container, ]) dash_duo.start_server(app) # test layout and title for each page in `page_registry` with link navigation for page in dash.page_registry.values(): dash_duo.find_element("#" + page["id"]).click() dash_duo.wait_for_text_to_equal("#text_" + page["id"], "text for " + page["id"]) assert dash_duo.driver.title == page[ "title"], "check that page title updates" assert not dash_duo.get_logs()
def get_app(path1="/", path2="/layout2"): app = Dash(__name__, use_pages=True) # test for storing arbitrary keyword arguments: An `id` prop is defined for every page # test for defining multiple pages within a single file: layout is passed directly to `register_page` # in the following two modules: dash.register_page( "multi_layout1", layout=html.Div("text for multi_layout1", id="text_multi_layout1"), path=path1, title="Supplied Title", description="This is the supplied description", name="Supplied name", image="birds.jpeg", id="multi_layout1", ) dash.register_page( "multi_layout2", layout=html.Div("text for multi_layout2", id="text_multi_layout2"), path=path2, id="multi_layout2", ) app.layout = html.Div([ html.Div([ html.Div( dcc.Link( f"{page['name']} - {page['path']}", id=page["id"], href=page["path"], )) for page in dash.page_registry.values() ]), dash.page_container, dcc.Location(id="url", refresh=True), ]) return app
def test_paor001_order(dash_duo): app = Dash(__name__, use_pages=True) dash.register_page( "multi_layout1", layout=html.Div("text for multi_layout1", id="text_multi_layout1"), order=2, id="multi_layout1", ) dash.register_page( "multi_layout2", layout=html.Div("text for multi_layout2", id="text_multi_layout2"), order=1, id="multi_layout2", ) dash.register_page( "multi_layout3", layout=html.Div("text for multi_layout3", id="text_multi_layout3"), order=0, id="multi_layout3", ) app.layout = html.Div([ html.Div([ html.Div( dcc.Link( f"{page['name']} - {page['path']}", id=page["id"], href=page["path"], )) for page in dash.page_registry.values() ]), dash.page_container, dcc.Location(id="url", refresh=True), ]) modules = [ "multi_layout3", "multi_layout2", "multi_layout1", "pages.defaults", "pages.metas", "pages.not_found_404", "pages.page1", "pages.page2", "pages.path_variables", "pages.query_string", "pages.redirect", ] dash_duo.start_server(app) assert (list(dash.page_registry) == modules ), "check order of modules in dash.page_registry" assert dash_duo.get_logs() == [], "browser console should contain no error"
from dash import Dash, html, dcc import dash import dash_labs as dl app = Dash(__name__, plugins=[dl.plugins.pages]) dash.register_page("another_home", layout=html.Div("We're home!"), path="/") dash.register_page( "very_important", layout=html.Div("Don't miss it!"), path="/important", order=0 ) app.layout = html.Div( [ html.H1("App Frame"), html.Div( [ html.Div( dcc.Link(f"{page['name']} - {page['path']}", href=page["path"]) ) for page in dash.page_registry.values() if page["module"] != "pages.not_found_404" ] ), dl.plugins.page_container, ] ) if __name__ == "__main__": app.run_server(debug=True)
import dash dash.register_page( __name__, title="(birds) The title, headline or name of the page", description="(birds) A short description or summary 2-3 sentences", ) def layout(): return """ No image is specified but it's inferred from the module name. The module name is`birds.py` so it uses the `birds.jpeg` file in the assets folder. """
import dash from dash import html dash.register_page( __name__, description="Welcome to my app", redirect_from=["/old-home-page", "/v2"], extra_template_stuff="yup", ) layout = html.Div( ["Home Page", html.Img(src="/assets/birds.jpeg", height="50px")])
from dash import html import dash dash.register_page(__name__, path="/", top_nav=True) layout = html.Div("Home page content")
import dash dash.register_page(__name__, path="/dashboard") def layout(velocity=None, **other_unknown_query_strings): return dash.html.Div([dash.dcc.Input(id="velocity", value=velocity)])
import dash # Code from: https://github.com/plotly/dash-labs/tree/main/docs/demos/multi_page_example1 dash.register_page(__name__, path="/") from dash import Dash, dcc, html, Input, Output, callback import plotly.express as px df = px.data.medals_wide(indexed=True) layout = html.Div([ html.P("Medals included:"), dcc.Checklist( id="heatmaps-medals", options=[{ "label": x, "value": x } for x in df.columns], value=df.columns.tolist(), ), dcc.Graph(id="heatmaps-graph"), ]) @callback(Output("heatmaps-graph", "figure"), Input("heatmaps-medals", "value")) def filter_heatmap(cols): fig = px.imshow(df[cols]) return fig
from dash import html import dash dash.register_page(__name__, path="/404", id="not_found_404") layout = html.Div("text for not_found_404", id="text_not_found_404")
import dash import dash_labs as dl import dash_bootstrap_components as dbc app = dash.Dash(__name__, plugins=[dl.plugins.pages], external_stylesheets=[dbc.themes.BOOTSTRAP]) dash.register_page("home", layout="We're home!", path="/") navbar = dbc.NavbarSimple( dbc.DropdownMenu( [ dbc.DropdownMenuItem(page["name"], href=page["path"]) for page in dash.page_registry.values() if page["module"] != "pages.not_found_404" ], nav=True, label="More Pages", ), brand="Multi Page App Plugin Demo", color="primary", dark=True, className="mb-2", ) app.layout = dbc.Container( [ navbar, dl.plugins.page_container, ],
from dash import html import dash import dash_bootstrap_components as dbc from .side_bar import sidebar dash.register_page( __name__, name="Topics", top_nav=True, ) def layout(): return dbc.Row([ dbc.Col(sidebar(), width=2), dbc.Col(html.Div("Topics Home Page"), width=10) ])
import dash from dash import html dash.register_page(__name__, id="query_string") def layout(velocity=None, **other_unknown_query_strings): return html.Div([ html.Div("text for query_string", id="text_query_string"), dash.dcc.Input(id="velocity", value=velocity), ])
import dash dash.register_page(__name__, icon="fas fa-chart-bar") from dash import Dash, dcc, html, Input, Output, callback import plotly.express as px df = px.data.tips() days = df.day.unique() layout = html.Div([ dcc.Dropdown( id="dropdown", options=[{ "label": x, "value": x } for x in days], value=days[0], clearable=False, ), dcc.Graph(id="bar-chart"), ]) @callback(Output("bar-chart", "figure"), Input("dropdown", "value")) def update_bar_chart(day): mask = df["day"] == day fig = px.bar(df[mask], x="sex", y="total_bill", color="smoker",
import dash from dash import html dash.register_page(__name__, id="defaults") layout = html.Div("text for defaults", id="text_defaults")
import dash dash.register_page( __name__, title="Forward Outlook", description="This is the forward outlook", # should accept callable too path="/forward-outlook", image="birds.jpeg", ) def layout(): return "Forward outlook"
import dash dash.register_page( __name__, path_template="/asset/<asset_id>/department/<dept_id>", title="Asset by location analysis", description="This is a longer description", # path="/asset/inventory/department/branch-1001" ) def layout(asset_id=None, dept_id=None, **other_unknown_query_strings): return dash.html.Div( f"variables from pathname: asset_id: {asset_id} dept_id: {dept_id}")
from dash import html import dash dash.register_page(__name__, top_nav=True) layout = html.Div("About page content")
from dash import Dash, html, dcc import dash import dash_labs as dl app = Dash(__name__, plugins=[dl.plugins.pages]) dash.register_page("home", layout="We're home!", path="/") dash.register_page("very_important", layout="Don't miss it!", path="/important", order=0) app.layout = html.Div([ html.H1("App Frame"), html.Div([ html.Div( dcc.Link(f"{page['name']} - {page['path']}", href=page["path"])) for page in dash.page_registry.values() if page["module"] != "pages.not_found_404" ]), dl.plugins.page_container, ]) if __name__ == "__main__": app.run_server(debug=True)
import dash from dash import html dash.register_page( __name__, path="/", image="birdhouse.jpeg", title="(home) The title, headline or name of the page", description="(home) A short description or summary 2-3 sentences", ) layout = html.Div( "The image for the home page is specified as `birdhouse.jpeg'")
import dash_bootstrap_components as dbc from dash import dcc from dash import html import plotly.graph_objs as go from dash import dash_table import plotly.express as px import numpy as np import os import pandas as pd from app import app import plotly.graph_objects as go # app = dash.Dash(__name__) # server = app.server dash.register_page(__name__, path='/') df = pd.read_csv( 'https://raw.githubusercontent.com/mcgovernplotly/DinoDashboard/main/DinoData.csv') Period_list = list(df["Period"].unique()) Period_list.sort() # df2 = df.groupby(['Latitude', 'Longitude','Period'], as_index=False).count() # df2['LatLongPeriodCount']=df2['name_old'] # df3 = df.groupby(df['Period','Type'], as_index=False) #df3['LatLongTypeCount']=df3['name_old'] Type_list = list(df["Type"].unique()) totalFossilsFounds = len(df.axes[0]) # fig = px.scatter_geo(df, lat='Latitude', lon='Longitude', color="Country", # hover_name="Country",
import dash from dash import html dash.register_page(__name__, redirect_from=["/old-home-page", "/v2"], id="redirect") layout = html.Div("text for redirect", id="text_redirect")
import dash from dash import html dash.register_page(__name__, id="page2") layout = html.Div("text for page2", id="text_page2")
import dash dash.register_page(__name__) from dash import Dash, dcc, html, Input, Output, callback import plotly.express as px df = px.data.tips() days = df.day.unique() def layout(day=days[0], **other_unknown_query_strings): return html.Div([ dcc.Dropdown( id="dropdown", options=[{ "label": x, "value": x } for x in days], value=day, clearable=False, ), dcc.Graph(id="bar-chart"), ]) @callback(Output("bar-chart", "figure"), Input("dropdown", "value")) def update_bar_chart(day): mask = df["day"] == day fig = px.bar(df[mask], x="sex",
import dash from dash import html dash.register_page(__name__, path_template="/a/<id_a>/b/<id_b>", id="register_page") def layout(id_a=None, id_b=None, **other_unknown_query_strings): return html.Div([ html.Div("text for register_page", id="text_register_page"), html.Div(f"variables from pathname:{id_a} {id_b}", id="path_vars"), ])