본문 바로가기

Github & Streamlit

Streamlit 문법: 파일을 분리해서 만드는 앱

반응형

파일을 분리해서 만드는 앱

 

- 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)

(streamlit 결과물)

 

 

(이하 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())

(streamlit 결과물)

 

(이하 app9_ml.py)

 

import streamlit as st

def run_ml():
    st.subheader('머신러닝 관련 화면')

(streamlit 결과물)

 

(이하 app9_about.py)

 

import streamlit as st

def run_about():
    st.subheader('이 앱은...')

(streamlit 결과물)

 

(이하 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 누르고 함수명위로 마우스커서 옮기면, 해당 파일로 옮겨간다.

 

반응형