반응형
파일을 분리해서 만드는 앱
- app9에서 진행할 새로운 파일들을 만들어준다.
- 해당 파일에서 함수 설정 후에, app.py에서는 새로운 파일에서 작성한 함수만 호출 할것이다.
-> 스크립트가 더 깔끔해진다.
- 하나의 기능을 하나의 파일로 구현해놓으면 나중에 코드 수정할 때, 용이하다.
(이하 app9_home.py)
- 깔끔하게 함수만 작성해준다.
import streamlit as st from PIL import Image def run_home(): st.subheader('홈 화면입니다.') st.text('파일 분리앱 실습하다') img = Image.open('data2/image_03.jpg') st.image(img) |
(이하 app9_eda.py)
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()) |
(이하 app9_ml.py)
import streamlit as st def run_ml(): st.subheader('머신러닝 관련 화면') |
(이하 app9_about.py)
import streamlit as st def run_about(): st.subheader('이 앱은...') |
(이하 app9.py)
import streamlit as st from app9_about import run_about from app9_eda import run_eda from app9_ml import run_ml from app9_home import run_home |
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() |
- 다른 파일에 있는 함수를 호출 할 때, 함수 기재시, vscode에서 자동 완성 될 경우에, 상단에 ‘from (파일명) import (함수명)’의 형식으로 자동 기재된다.
- 자동완성이 아닐 경우, ‘ from (파일명) import (함수명) ’의 형식으로 입력해야 함수가 실행된다.
ctrl 누르고 함수명위로 마우스커서 옮기면, 해당 파일로 옮겨간다.
반응형
'Github & Streamlit' 카테고리의 다른 글
streamlit 이 제공하는 차트: st.line_chart(), st.area_chart(), st.bar_chart() (0) | 2022.06.01 |
---|---|
Streamlit 차트 그리기: fig = plt.figure() , st.pyplot(fig) (0) | 2022.06.01 |
Streamlit 문법: 파일 업로드 함수 (0) | 2022.06.01 |
Streamlit 문법: CSV 파일 업로드: st.file_uploader(‘문구’, type=['csv']) (0) | 2022.05.24 |
Streamlit 문법: 파일 저장/업로드, st.sidebar.selectbox(), st.fuke_uploader() (0) | 2022.05.24 |