기다림을 보여주기
앱이 무거운 일을 하는 몇 초 동안 화면이 멈춰 있으면, 사용자는 "고장났나?" 하고 불안해한다냥. 그럴 때 "지금 일하는 중이에요" 를 보여주면 안심이 된다냥. 오늘은 그 표시들을 배운다냥!
오늘의 학습 목표
st.spinner로 로딩 표시를 띄운다.st.progress로 진행 막대를 보여준다.st.toast로 잠깐 뜨는 알림을 띄운다.
streamlit1.40 이상파이썬 코드로 웹 화면 만들기
설치하기 — 터미널에 그대로 붙여넣기
pip install "streamlit>=1.40"설치 확인 — 버전 번호가 찍히면 성공
python -c "import streamlit; print(streamlit.__version__)"위 버전은 최소 기준이라, 더 높은 버전이 깔려 있으면 그대로 써도 된다냥. 버전이 안 찍히고 에러가 나면 설치가 안 된 거라 설치 명령을 다시 실행해보자냥.
1단계 · 빙글빙글 로딩 — spinner
st.spinner 는 with 블록 안의 일이 끝날 때까지 빙글빙글 도는 로딩
표시를 보여준다냥. 일이 끝나면 저절로 사라진다냥.
import streamlit as st
import time
if st.button("데이터 불러오기"):
with st.spinner("불러오는 중이라냥..."):
time.sleep(2) # 2초 걸리는 일이라 치자냥
st.success("다 됐다냥!")time.sleep 은 잠깐 멈추는 거라냥
time.sleep(2) 는 2초 동안 멈추는 거라냥. 실제로는 이 자리에 파일 읽기
같은 진짜 무거운 일이 들어간다냥. 연습에선 sleep 으로 흉내낸 거다냥!
2단계 · 진행 막대 — progress
일이 여러 단계로 나뉘어 있으면, 몇 %까지 됐는지 막대로 보여줄 수
있다냥. st.progress 라냥.
import streamlit as st
import time
bar = st.progress(0) # 0% 에서 시작
for percent in range(1, 101):
time.sleep(0.02)
bar.progress(percent) # 막대를 조금씩 채운다냥
st.write("완료라냥!")막대는 0~100 사이라냥
bar.progress(percent) 의 숫자는 0부터 100까지라냥. for 로 조금씩
늘리면 막대가 차오른다냥. 파일 여러 개를 처리할 때 딱이다냥!
3단계 · 잠깐 뜨는 알림 — toast
st.toast 는 화면 구석에 잠깐 떴다가 사라지는 작은 알림이다냥.
"저장했어요!", "메일을 보냈어요!" 같은 짧은 소식에 딱이다냥.
import streamlit as st
if st.button("저장"):
st.toast("저장했다냥!")세 가지, 언제 뭘 쓰냥
4단계 · 직접 해보기
미션 · 가짜 다운로드 앱
- "다운로드" 버튼을 만들고
- 누르면
st.spinner로 "받는 중..." 을 보여주다가 st.progress로 막대를 0에서 100까지 채우고- 끝나면
st.toast("완료!")를 띄워보자냥.
진짜 다운로드처럼 보이는 걸 만드는 게 목표라냥!
복습 퀴즈
기다림을 보여주는 법까지 배웠다냥! 5부의 마지막 시간엔 앱의 설정과
테마, 그리고 비밀번호 같은 걸 안전하게 숨기는 st.secrets 를 배운다냥.
진짜 배포를 앞둔 중요한 강이라냥!
