다음과 같은 코드가 있습니다.
menu = ['Home','EDA','ML','About']
choice = st.sidebar.selectbox('메뉴',menu)
if choice == 'Home':
pass
elif choice == 'EDA' :
pass
elif choice == 'ML' :
pass
elif choice == 'About' :
pass
사이드바에 선택상자인데 각각의 항목들을 전부 한 페이지에 작성하면 추후에 유지보수 작업에 어려움이 있습니다.
따라서 각 항목을 파일로 분리한 다음에 가져오는 방법을 이용합니다.
app_home.py
import streamlit as st
def run_home_app() :
st.subheader('Home 화면')
st.text('홈화면에서 할 일을 여기에 코딩합니다.')
app_eda.py
import streamlit as st
import pandas as pd
def run_eda_app() :
st.subheader('EDA 화면')
df = pd.read_csv('streamlit_data/iris.csv')
st.dataframe(df)
st.dataframe(df.corr())
app_ml.py
import streamlit as st
import pandas as pd
def run_ml_app() :
st.subheader('머신러닝 화면')
각 파일별로 원하는 코딩을 했다면 이제 이 파일들을 불러와 사용해봅시다.
from app_home import run_home_app
from app_eda import run_eda_app
from app_ml import run_ml_app
def main() :
st.title('파일 분리 앱')
# Exploratory Data Analysis
menu = ['Home','EDA','ML','About']
choice = st.sidebar.selectbox('메뉴',menu)
if choice == 'Home':
run_home_app()
elif choice == 'EDA' :
run_eda_app()
elif choice == 'ML' :
run_ml_app()
elif choice == 'About' :
pass
if __name__ == '__main__' :
main()
위와 같이 함수만 가져와서 사용하는 방법이 있습니다.
혹여나 각분리된 파일에 변수마저 가져오고 싶다면 파일 자체를 import 하여 사용이 가능합니다.
'개발 > 대시보드' 카테고리의 다른 글
웹 대시보드 - 웹 대시보드 개발 순서, Jupyter to Streamlit (0) | 2022.12.13 |
---|---|
웹 대시보드 - 차트 그리기(scatter,regplot,hist,altair,map,plotly) (0) | 2022.12.13 |
웹 대시보드 - 업로드(image,csv) (0) | 2022.12.13 |
웹 대시보드 - 입력받기(input) (0) | 2022.12.13 |
웹 대시보드 - 여러 UI 함수 4(Image,video) (0) | 2022.12.12 |