Streamlit

    Streamlit - 수정 사항이 있으면 자동으로 갱신하도록 실행하기

    https://donghyeok90.tistory.com/135 GitHub Actions를 이용한 CI/CD 파일을 수정하면, EC2 서버에 자동 배포하는 법을 알아보자. AWS EC2에 접속하려면 호스트주소, 키파일, username이 있어야 한다. 깃허브가 자동으로 EC2 서버에 접속해서 배포하려면 이 정보들을 가지 donghyeok90.tistory.com 위 포스팅에 이어서, github actions 설정을 마치고 돌아가고 있는 streamlit 서버를 확인해봤는데 수정내용이 반영되지 않았다. 확인해보니 서버에 있는 소스코드 파일은 제대로 수정이 되었다. 원인은 바로 일반적인 실행명령인 streamlit run을 사용하면 로컬에서 테스트할 때, 변경사항이 있을 때 rerun을 눌러줘야 했는데,..

    Streamlit - 파이썬 개발 시, 파일을 분리하여 개발하기

    하나의 소스 코드 파일로는 문제가 발생하면 수정시 긴 내용을 읽어야 하는 가독성으로 인한 시간 지연과 하나의 파일이므로 잘못 수정시 안정성의 문제로 치명적 손상을 입을 수 있다. 그렇기 때문에 프로그램의 안정성을 고려하여 특정 기능을 하는 함수들을 파일화하여 메인파일에 import 해서 사용하는 것을 권장한다. 이렇게 사용하면 특정 기능들이 문제가 되어도 해당 서브 파일만 수정하면 되서 유지성이 상승한다. 메인파일 코드 import streamlit as st # 다른 파일의 함수를 호출하고 싶으면, 함수를 임포트 한다. from app8_home import run_home_app from app8_EDA import run_eda_app from app8_ML import run_ml_app from..

    Streamlit - 웹 대시보드에서 차트 시각화 (2)

    import streamlit as st import pandas as pd # 웹페이지에서 차트를 그릴 때 깔끔한 plotly, altair 라이브러리 import plotly.express as px import altair as alt streamlit에서 제공하는 차트 df = pd.read_csv('streamlit_data/lang_data.csv') st.dataframe(df.head()) column_menu = df.columns[1:] choice_list = st.multiselect('프로그래밍 언어를 선택하세요.', column_menu) if len(choice_list) != 0: # 유저가 선택한 언어만, 차트를 그린다. df_selected = df[choice_list]..

    Streamlit - 웹 대시보드에서 차트 시각화 (1)

    우리가 주피터노트북에서 그렸던 plt 차트나 sb 차트는, 스트림릿에서 표시하려면 plt.figure()로 먼저 영역을 잡아주고, st.pyplot 함수로 웹 화면에 그려준다. 그리고 판다스 데이터 프레임의 내장 차트도 마찬가지로 해준다. 샘플코드를 보고 사용법을 알아보자. import streamlit as st import pandas as pd import matplotlib.pyplot as plt import seaborn as sb df = pd.read_csv('streamlit_data/iris.csv') scatter # sepal_length 와 sepal_width의 관계를 차트로 그리시오. fig = plt.figure() plt.scatter(data= df, x='sepal_le..

    Streamlit - 유저가 업로드한 파일을 저장하는 방법

    import streamlit as st import pandas as pd import os from datetime import datetime from PIL import Image # 디렉토리(폴더)명과 파일을 알려주면, # 해당 디렉토리에 파일을 저장해 주는 함수. def save_uploaded_file(directory, file): # 1. 디렉토리가 있는지 확인하여, 없으면 먼저 디렉토리부터 만든다. if not os.path.exists(directory): os.makedirs(directory) # 2. 디렉토리가 있으니, 파일을 저장한다. with open(os.path.join(directory, file.name), 'wb') as f: f.write(file.getbuffer..

    Streamlit - 유저에게 데이터를 입력 받는 방법

    import streamlit as st 텍스트 필드에 유저가 데이터를 입력 하면, 그 데이터를 받아 상호작용 할 수 있다. 1. 문자를 입력 받는 방법 text_input() name = st.text_input('이름을 입력하세요!') st.title(name) # 최대 5글자까지 name2 = st.text_input('이름 입력!', max_chars=5) st.title(name2) max_chars를 넘으면 더 이상 입력되지 않는다. text_area() : 여러줄을 입력 받을 때 message = st.text_area('메세지를 입력하세요.') st.text(message) text_area() 에서는 엔터키가 줄바꿈이기 때문에 입력할 때는 엔터가 아닌 Ctrl+엔터를 눌러줘야 한다. 2...

    Streamlit - 웹 대시보드에 이미지, 비디오, 오디오 올리기

    import streamlit as st # 이미지 처리를 위한 라이브러리 from PIL import Image 1. 이미지 올리기 # 이미지 파일 img = Image.open('streamlit_data/image_03.jpg') st.image(img) st.image(img, use_column_width=True) # 브라우저의 가로사이즈에 맞게 # 이미지 주소 image_url = 'https://cdn.pixabay.com/photo/2022/11/19/18/45/gray-geese-7602847__340.jpg' st.image(image_url) 2. 동영상 올리기 video_file = open('streamlit_data/secret_of_success.mp4', mode='rb')..

    Streamlit의 다양한 UI 함수들(3) - 상호작용 버튼 만들기

    Streamlit을 사용한 웹대시보드에서 표시 할 다양한 상호작용 버튼 사용법을 알아보자. import streamlit as st import pandas as pd 1. button() 버튼을 클릭하지 않으면 False, 클릭하면 True를 반환한다. df = pd.read_csv('streamlit_data/iris.csv') # 버튼을 클릭하면, 데이터프레임이 보이도록 만들기. if st.button('데이터프레임 보기'): st.dataframe(df) name = 'Mike' if st.button('대문자로'): st.text(name.upper()) 2. radio() 여러 선택지 중 하나를 선택 status = st.radio('정렬을 선택하세요', ['오름차순정렬', '내림차순정렬'])..