Streamlit API 치트시트 — 자주 쓰는 명령 한눈에
Streamlit API 치트시트 — 자주 쓰는 명령 한눈에
치트시트는 Streamlit으로 만들 수 있는 화면 요소를 주제별로 빠르게 훑는 데 최고예요. 처음부터 다 외울 필요 없고, "이런 걸 보여주고 싶은데 어떤 함수였지?" 할 때 펼쳐보면 돼요. 자주 쓰는 명령만 골라서 살펴볼게요.
출처: https://docs.streamlit.io/develop/quick-reference/cheat-sheet
텍스트·데이터 표시
매직 커맨드는 st.write()를 암시적으로 호출해요. 변수나 마크다운 문자열을 그냥 쓰면 알아서 화면에 그려줘요.
my_variable # 그냥 변수만 써도 표시됨
"dataframe:", my_dataframe
st.write("Most objects")
st.markdown("_Markdown_")
st.title("My title"); st.header("My header"); st.subheader("My sub")
st.dataframe(my_dataframe) # 인터랙티브 표
st.metric("My metric", 42, 2) # 지표 카드
차트
차트도 몇 줄이면 그려져요. st.line_chart(df), st.bar_chart(df, horizontal=True), st.scatter_chart(df), st.map(df) 같은 편의 함수 외에 Altair·Plotly·Vega-Lite 같은 고급 차트도 지원해요.
위젯 (사용자 입력)
상호작용의 핵심은 위젯이에요. 값은 반환값으로 받아요.
name = st.text_input("First name")
age = st.number_input("Pick a number", 0, 10)
choice = st.selectbox("Pick one", ["cats", "dogs"])
likes = st.multiselect("Buy", ["milk", "apples", "potatoes"])
agree = st.checkbox("I agree")
rating = st.slider("Pick a number", 0, 100)
레이아웃 — 컬럼·탭·사이드바
col1, col2 = st.columns(2) # 2등분
col1.write("This is column 1")
col2.write("This is column 2")
tab1, tab2 = st.tabs(["Tab 1", "Tab2"])
tab1.write("this is tab 1")
# 사이드바: "with" 표기로 묶기
with st.sidebar:
st.radio("Select one:", [1, 2])
채팅 앱
with st.chat_message("user"):
st.write("Hello 👋")
st.chat_input("Say something")
st.chat_message는 대화 말풍선 컨테이너, st.chat_input은 입력 위젯이에요.
성능 — 캐싱
무거운 계산을 반복하지 않으려면 캐시 데코레이터를 붙여요.
@st.cache_data: 데이터프레임 계산처럼 값으로 반환하는 함수용.@st.cache_resource: TensorFlow 세션, DB 연결처럼 "하나만 있으면 되는" 객체용.
@st.cache_data
def foo(bar):
return data
@st.cache_resource
def foo(bar):
return session
더 알아보기
전체 명령 목록과 예시는 공식 Streamlit API cheat sheet에서 확인할 수 있어요.