plesna/dashboard/app.py

63 lines
1.5 KiB
Python
Raw Normal View History

2024-07-27 13:55:20 +00:00
import dash
from dash import Dash, html, dcc
2024-07-27 17:19:36 +00:00
from .pages import home, config, stage, schema, table
from .datalake import stages
2024-07-27 13:55:20 +00:00
2024-07-27 16:21:42 +00:00
external_scripts = [
{'src': 'https://cdn.tailwindcss.com'}
]
# external_script = ["https://tailwindcss.com/", {"src": "https://cdn.tailwindcss.com"}]
2024-07-28 15:34:56 +00:00
app = Dash(__name__,
use_pages=True,
external_scripts=external_scripts,
suppress_callback_exceptions=True,
)
2024-07-27 16:21:42 +00:00
app.scripts.config.serve_locally = True
2024-07-27 17:19:36 +00:00
dash.register_page(
home.__name__,
path='/',
layout=home.layout,
)
dash.register_page(
config.__name__,
path='/config',
layout=config.layout
)
dash.register_page(
stage.__name__,
path_template='/stage/<stage_name>',
layout=stage.layout
)
dash.register_page(
schema.__name__,
path_template='/stg/<stage_name>/schema/<schema_name>',
layout=schema.layout
)
dash.register_page(
table.__name__,
path_template='/stg/<stage_name>/schm/<schema_name>/table/<table_name>',
layout=table.layout_factory(stages)
2024-07-27 17:19:36 +00:00
)
table.callback_factory(app)
2024-07-27 13:55:20 +00:00
app.layout = html.Div([
html.Div([
2024-07-27 16:21:42 +00:00
dcc.Link(
html.H1('Plesna', ),
href="/",
className="text-4xl p-4 text-center grow align-baseline"
),
dcc.Link("Config",
href="/config",
2024-07-27 16:45:20 +00:00
className="flex-none hover:bg-amber-100 p-4 align-middle"
2024-07-27 16:21:42 +00:00
)
],
2024-07-27 16:45:20 +00:00
className="bg-amber-300 flex flex-row shadow"
2024-07-27 16:21:42 +00:00
),
2024-07-27 13:55:20 +00:00
dash.page_container
])
if __name__ == '__main__':
app.run(debug=True)