반응형
< 파일을 분리해서 개발하는 방법 >
# 기본적으로 모든 코드들은
def main() :
if __name__ == '__main__' :
main()
ㄴ 이 기본형식 안에서 쓰여저야 실행된다. 혹시 실행이 되지 않을경우 하단에 마무리 코드를 적지 않았는지 확인!
# 웹 화면에 실행 확인은 생성한 파일명이나 혹은 연동한 app을 서버로 실행하여야 함.
# 터미널을 cmd로 열어 & streamli lit run 실행시킬서버명칭.py 로 실행후 always rerun 후 확인
# 분리개발시에 sub 화면으로 사용하는 코드는 마지막 문구를 넣지 않아도됨
< app8.py + app8_home / eda / ml / about .py 로 작성 >
# 파일을 분리해서 개발하는 방법
# 기본적으로 실무에서는 한화면에서 모든 코드를적어 개발하는것이 아니라
# 파일을 분리하여 각 파일에서 코드들을 작성하여 함수로 만들고 이함수들을 import로 가져와서 실행
# 오류가 생길경우 해당 파일만 수정하기 위한 용도
import streamlit as st
# 다른 파일에서 만든 함수를 import로 가져오는것
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] :
run_home()
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
# # eda는 탐색적 데이터 분석의 약자
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)
column_list = df.columns
choice_list = st.multiselect('원하는 컬럼을 선택하세요', column_list)
# print(choice_list)
if choice_list != [] :
st.dataframe (df [choice_list])
st.dataframe (df [choice_list].corr(numeric_only= True))
# 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 하여 실행시켜서, 각 페이지별로 동작되도록 개발한다.
다음 게시글로 계속
728x90
반응형
'DASHBOARD APP 개발 > Streamlit Library' 카테고리의 다른 글
Streamlit 기본 lib : Web 화면에 차트그리기 2 (스트림릿의 내장 차트 함수와 유명한 라이브러리인 plotly 차트) (0) | 2024.05.07 |
---|---|
Streamlit 기본 lib : Web 화면에 차트그리기 1 (0) | 2024.05.07 |
Streamlit 기본 lib : Web화면에서 이미지, csv 파일 업로드 하기 (0) | 2024.05.07 |
Streamlit 기본 lib : Web화면에서 유저한테 숫자, 문자, 시간, 색 입력받기 (0) | 2024.05.07 |
Streamlit 기본 lib : Web 화면에 이미지/동영상/음악 파일 보여주기 (0) | 2024.05.07 |