Is there a way to run a finnished Dash app in two different dash tabs?

wrote a Dash App, where users can upload a CSV file and display it as a graph. It also contains certain callbacks that change the color of the bar in the graph while clicking on the graph and the selected row in the table gets marketed. My question is now how can I run my app in two different Dash tabs, for instance, you can use two uploaded CSV files and compare them for a better overview.

I already tried to separate my app in a project structure like below.

  • app.py
  • index.py
  • apps
    |-- init.py
    |-- app1.py
    |-- app2.py

but is this really needed? Do I need to connect the callbacks in the app.py and especially which of them to run my app again?

import base64
import dash_core_components as dcc
import dash_html_components as html
import dash_table_experiments as dt
from dash.dependencies import Input, Output, State
import dash
import pandas as pd
import io

app = dash.Dash()

app.scripts.config.serve_locally = True
app.config[‘suppress_callback_exceptions’] = True
image_filename = —
encoded_image = base64.b64encode(open(image_filename, ‘rb’).read())

app.layout = html.Div([
dcc.Upload(
id=‘upload-data’,
children=html.Div([
‘Drag and drop’,
html.A(‘Select Files’)
]),
style={
‘width’: ‘100%’,
‘height’: ‘60px’,
‘lineHeight’: ‘60px’,
‘borderWidth’: ‘1px’,
‘borderStyle’: ‘dashed’,
‘borderRadius’: ‘5px’,
‘textAlign’: ‘center’,
‘margin’: ‘10px’
},

),

html.Br(),
html.Div("x axis"),
dcc.Dropdown(id='x_Axis',
    multi = False,

html.Div('y axis'),
dcc.Dropdown(id='y_Axis',
    multi = True,


html.Div(id='graph'),
html.Br(),
html.H5("Updated Table"),
html.Div(dt.DataTable(rows=[{}], id='table', 
                      selected_row_indices=[], row_selectable=True))

])

functions

file upload function

def parse_contents():

#return graph function
return graph():

colorchange

@app.callback
def update_selected_row_indices():

#update graph
@app.callback
def update_graph():

callback table creation

@app.callback
def update_output():

#callback x dropdown
@app.callback
def updateX():

#callback y dropdown
@app.callback
def updateY():