웹대시보드 개발

웹대시 보드 개발(8) sidebar 메뉴 만들기

개발연습자1 2022. 12. 14. 15:18

웹페이지를 보면 sidebar로 메뉴가 나눠져 있는 웹페이지를 쉽게 찾아 볼수 있다.

 

단순히 보기 좋게 메뉴를 나눠 놓은것이 아닌 메뉴마다 함수를 호출 시켜 동작하기 때문에 코드가 자칫 길어 지는것을 방지 하는 효과가 까지 있다.

 

import streamlit as st
#다른 파일의 함수를 호출하고 싶으면, 함수를 임포트 한다.
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)
    
    #home 함수 호출
    if choice == 'Home' :
        run_home_app()
        
    #eda 함수 호출
    elif choice == 'EDA':
        run_eda_app()
    
    #ml 함수 호출
    elif choice == 'ML':
        run_ml_app()
        
    #about은 기타라 없음    
    elif choice == 'About':
        pass


if __name__ == '__main__' :
    main()

 

home함수

import streamlit as st

def run_home_app():
    
    st.subheader('Home 화면')

    st.text('홈화면에서 할 일을 여기에 코딩합니다.')

 

eda함수

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())

 

ml함수

import streamlit as st

def run_ml_app():
    st.subheader('머신러닝 화면')

 

 

 

 

이런식으로 따로 작성된 함수를 side menu에서 부를수 있다.

반응형