Web Dashboard
파일 분리하여서 개발하기 - 함수 정의해서 호출하기
yugyeong
2022. 12. 13. 12:08
코드를 작성할 때, 함수를 정의하고 사용하는 경우가 많다.
그럴때, 함수 파일을 따로 분리하여서 작성을 하면 코드가 깔끔해지고 보기 좋아진다.
사이드바에 셀렉트 박스를 생성하여서, 리스트에 담긴 데이터를 클릭하였을 때 웹페이지에 데이터를 리턴하고자 한다.
이때 각각 클릭한 값에 따라 다른 값을 리턴하기 위해서 함수를 생성하고 호출하여서 이용할 것이다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
def main() :
st.title('파일 분리 앱')
menu = ['Home', 'EDA', 'ML', 'About']
choice = st.sidebar.selectbox('메뉴', menu)
if choice == 'Home' :
run_home_app()
elif choice == 'EDA' :
run_eda_app()
elif choice == 'ML' :
run_ml_app()
elif choice == 'About' :
pass
|
cs |
함수를 생성하여서 호출하기 위해서는 새로운 파이썬 파일을 만들어주어야 한다.
app_home.py 파일을 생성하여서 그 안에 Home 버튼을 클릭하였을 때 리턴될 값의 함수 run_home_app() 작성하였다.
|
1
2
3
4
5
6
7
|
import streamlit as st
def run_home_app() :
st.subheader('Home 화면입니다.')
st.text('홈화면에서 할 일을 여기에 코딩합니다.')
|
cs |
ㄱ
위와 같은 방식으로 app_eda 와 app_ml 파이썬 파일을 생성하여, 그 안에 함수를 각각 run_eda_app() 과 run_ml_app() 을 생성하였다
|
1
2
3
4
5
6
7
8
9
|
import streamlit as st
import pandas as pd
def run_eda_app() :
st.subheader('EDA 화면')
df = pd.read_csv('streamlit_data/iris.csv')
st.dataframe(df)
st.dataframe(df.corr())
|
cs |
|
1
2
3
4
|
import streamlit as st
def run_ml_app() :
st.subheader('머신러닝 화면')
|
cs |
그리고 현재 파이썬 파일에서 app_home.py 의 함수를 호출하여서 사용하는 것이기 때문에
파이썬 파일명과 함수를 임포트 해준다.
|
1
2
3
4
5
|
# 다른 파일의 함수를 호출하고 싶으면, 함수를 임포트 한다.
from app_home import run_home_app
from app_eda import run_eda_app
from app_ml import run_ml_app
|
cs |
아래처럼 각각 함수를 정의해준 후 호출하여서 사용한 코드이다.

streamlit 을 run 해보면 아래와같은 결과가 나온다.


