Streamlit

python(파이썬)의 streamlit(스트림릿)에서 클래스를 이용해 py파일 분리하기

HooSL 2022. 1. 10. 12:03

스트림릿과 판다스,파일업로드에 필요한 import 해줍니다.

import streamlit as st

#해당 import는 다른 py파일의 클래스 import 코드입니다.
from eda_app import run_eda_app
from ML_app import run_ml_app
def main():
    st.title('파일 분리 앱')

    menu = ['Home','EDA','ML','About']

    choice = st.sidebar.selectbox('메뉴',menu) #사이드바에 메뉴를 선택할 수 있는 박스 만들기

    if choice == 'Home':
        st.subheader('홈 화면입니다.') #Home메뉴 선택시 출력
    
    elif choice =='EDA':
        run_eda_app() #EDA선택시 해당 함수 실행

    elif choice =='ML':
        run_ml_app() #ML선택시 해당 함수 실행

    else:
        st.subheader('앱 소개 화면입니다.') #나머지 About 선택시 실행
    
if __name__ == '__main__':
    main()

 

이렇게 eda_app.py 와 ML_app.py를 만들어주었습니다.

 

eda_app.py에선

import streamlit as st
import pandas as pd

def run_eda_app():

    st.subheader('EDA 화면입니다.')

    df = pd.read_csv('data/iris.csv')

    st.dataframe(df)

    st.dataframe(df.corr())

 

ML_app.py에선

import streamlit as st


def run_ml_app():
    st.subheader('머신러닝 관련 화면입니다.')

하고 실행은 원문 py파일에서 실행합니다.

 

메뉴마다 화면이 다르게 나오는걸 볼 수 있습니다.