Streamlit

[Streanlit] 파일 분리 작업

eyoo 2022. 5. 20. 10:42

코드의 복잡도를 줄이기위해 파일을 분리해서 작업한다.

 
사이드바에 메뉴를 만들어 해당 메뉴를 선택하면 해당 페이지가 나오도록 한다.

import streamlit as st

    menu = ['Home', 'EDA','ML','About']
    choice = st.sidebar.selectbox('메뉴',menu)
   
    if choice == menu[0]:  # 여기 들어갈 내용을 다른 파일로 만든다.
        pass
    elif choice == menu[1]:
        pass
    elif choice == menu[2]:
        pass
    elif choice == menu[3]:
        pass
# 먼저 틀을 잡았다.
 
 
홈화면을 위한 코드를 작성한다.
 
in:
import streamlit as st
from PIL import Image

def run_home():
    st.subheader('홈 화면 입니다.')

    st.text('파일분리 실습중')

    img = Image.open('data2/bird.jpg')
   
    st.image(img)
out:

# 함수 단위로 만들어서 적용시켜야 한다.

 

 

EDA 화면을 위한 코드를 작성한다.

 

in:

import streamlit as st
import pandas as pd

def run_eda():
    st.subheader('EDA 화면')

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

    # 컬럼이름을 보여주고 여러 컬럼들을 선택 가능하게 하며 선택한 컬럼만 화면에 보여준다.

    column_list = st.multiselect('컬럼 선택',df.columns)

    if len(column_list) != 0:
        st.dataframe(df[column_list])

    # 상관계수를 구하여 화면에 보여준다.

        st.dataframe(df[column_list].corr())
 
out:

 

 

작성된 코드의 함수를 메인파일에 임포트한다.

 

from app9_home import run_home
from app9_eda import run_eda

 

그 후 메인 파일의 if 함수에 따로 작성했던 함수들을 적용시킨다.

 

    menu = ['Home', 'EDA','ML','About']
    choice = st.sidebar.selectbox('메뉴',menu)
   
    if choice == menu[0]:  # 여기 들어갈 내용을 다른 파일로 만든다.
        run_home()
    elif choice == menu[1]:
        run_eda()
    elif choice == menu[2]:
        run_ml()
    elif choice == menu[3]:
        run_about()

 

더보기

사용된 코드:

 

메인 파일:

import streamlit as st

from app9_home import run_home  # 런홈 함수를 작성한 뒤 임포트해서 적용시킨다.
from app9_eda import run_eda
from app9_ml import run_ml
from app9_about import run_about

def main():
    st.title('파일 분리 앱')

    menu = ['Home', 'EDA','ML','About']
    choice = st.sidebar.selectbox('메뉴',menu)
   
    if choice == menu[0]:  # 여기 들어갈 내용을 다른 파일로 만든다.
        run_home()
    elif choice == menu[1]:
        run_eda()
    elif choice == menu[2]:
        run_ml()
    elif choice == menu[3]:
        run_about()


if __name__ == '__main__':
    main()

 

홈 파일:

import streamlit as st
from PIL import Image
# 함수 단위로 만들어야 한다.

def run_home():
    st.subheader('홈 화면 입니다.')

    st.text('파일분리 실습중')

    img = Image.open('data2/bird.jpg')
   
    st.image(img)

 

EDA 파일

import streamlit as st
import pandas as pd

def run_eda():
    st.subheader('EDA 화면')

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

    # 컬럼이름을 보여주고 여러 컬럼들을 선택 가능하게 하며 선택한 컬럼만 화면에 보여준다.

    column_list = st.multiselect('컬럼 선택',df.columns)

    if len(column_list) != 0:
        st.dataframe(df[column_list])

    # 상관계수를 구하여 화면에 보여준다.

        st.dataframe(df[column_list].corr())