파일을 분리해서 개발하는 방법
분리하는 이유
1. 협업 가능
2. 디버깅 쉽게 가능, 유지보수 편리
사용할 기능을 각 파일로 만들어 함수로 저장해 메인에서 사용
# 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')
choice_list = st.multiselect('컬럼을 선택하세요.', df.columns)
if choice_list != []:
st.dataframe(df[choice_list])
st.dataframe(df[choice_list].corr(numeric_only=True))
st.scatter_chart(df[choice_list])
# app8_ml.py
import streamlit as st
def run_ml():
# 예측하는 작업을 수행한다.
st.subheader('머신러닝 예측')
# app8_about.py
import streamlit as st
def run_about():
st.subheader('이 앱은 ...')
다른 파일에 저장한 함수를 메인에서 호출해서 사용
import streamlit as st
from app8_home import run_home
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]:
# ctrl + 클릭하면 해당 함수가 있는 파일로 이동
run_home()
elif choice == menu[1]:
run_eda()
elif choice == menu[2]:
run_ml()
elif choice == menu[3]:
run_about()
if __name__ == '__main__':
main()
실행
'Python > Streamlit' 카테고리의 다른 글
[Python] Streamlit 차트 그리기 line_chart, area_chart, bar_chart, map (0) | 2024.04.24 |
---|---|
[Python] Streamlit matplotlib, seaborn 차트 (1) | 2024.04.24 |
[Python] Streamlit 파일 업로드 (0) | 2024.04.24 |
[Python] Streamlit 유저한테 데이터 입력 받기 (0) | 2024.04.23 |
[Python] Streamlit 이미지/동영상/음악파일을 화면에 출력 (open, image, video, audio) (0) | 2024.04.23 |