Python/Streamlit

Streamlit) 여러 개의 파일로 웹페이지 실행하기 (다른 파일에 있는 def 함수 가져오기)

567Rabbit 2024. 4. 26. 17:52

 

 

파일을 여러개로 만들어서, app8.py 를 실행시키고 각각의 def함수를 이용하는 방식이다.

 

 

app8.py의 내용이다

# 파일을 분리해서 개발하는 방법

import streamlit as st
from app8_home import run_home  #다른 파일의 def함수를 가져와서 쓰는방법
from app8_eda import run_eda
from app8_ml import run_ml
from app8_about import run_about
def main():
    st.title('파일 분리 앱')
    
    menu = ['Home','EDA','ML','About']
    
    choice = st.sidebar.selectbox('메뉴', menu)
    
    if choice == menu[0]: 
        run_home()          #다른 파일의 def함수를 가져와서 쓰는방법
    elif choice == menu[1]:
        run_eda()
    elif choice == menu[2]:
        run_ml()
    elif choice == menu[3]:
        run_about()

if __name__ == '__main__':
    main()

 

 

 

app8_home.py

import streamlit as st

def run_home() :
    st.subheader('홈 화면')
    st.text('파일 분리 앱 실습')
    st.image('./data/image_03.jpg')

 

 

app8_eda.py

import streamlit as st
import pandas as pd

def run_eda():
    st.subheader('EDA 화면')
    
    # iris.csv 파일을 읽어와서 여러 컬럼들 선택 가능토록 하여 선택한 컬럼들만 화면에 보여주고 상관계수도 보여주도록 개발
    df = pd.read_csv('./data/iris.csv')
    st.dataframe(df)
    
    # 모든 수치형 변수에 대한 상관 계수 계산
    numerical_cols = df.select_dtypes(include=['float64', 'int64']).columns
    selected_cols = st.multiselect('원하는 컬럼을 선택하세요', numerical_cols)
    
    if selected_cols:
        corr_df = df[selected_cols].corr()
        st.write("선택한 컬럼들 간의 상관 관계:")
        st.write(corr_df)
    else:
        st.write("컬럼을 선택하세요.")

 

 

 

app8_ml.py

import streamlit as st

def run_ml() :
    #예측하는 작업을 수행한다,
    
    st.subheader('이 앱은 ...')

 

 

 

app8_about.py

import streamlit as st

def run_about() :
    #예측하는 작업을 수행한다,
    
    st.subheader('about')