1. st.session_state의 기본 정의
st.session_state는 Streamlit 애플리케이션에서 세션별로 데이터를 저장하는 파이썬 딕셔너리 형태의 객체입니다. 이를 통해 사용자가 입력한 데이터나 애플리케이션 상태를 유지할 수 있습니다. 예를 들어, 사용자가 입력한 텍스트, 선택한 옵션, 클릭 횟수 등을 저장하고, 페이지 리로드 시에도 이 데이터를 유지할 수 있습니다.
특징:
기본 사용법:
import streamlit as st
# session_state에 값 설정
st.session_state['key'] = 'value'
# session_state에서 값 조회
if 'key' in st.session_state:
st.write(st.session_state['key'])
가장 간단한 예제로, 버튼을 누를 때마다 카운트를 증가시키는 애플리케이션을 만들어 봅시다. st.session_state를 사용하지 않으면 버튼 클릭 시 카운트가 초기화되지만, 이를 통해 상태를 유지할 수 있습니다.
import streamlit as st
# session_state에 카운터 초기화
if 'count' not in st.session_state:
st.session_state.count = 0
# 버튼 클릭 시 카운트 증가
if st.button("카운트 증가"):
st.session_state.count += 1
# 현재 카운트 표시
st.write(f"현재 카운트: {st.session_state.count}")
설명:
사용자가 입력한 텍스트를 저장하고, 이후 페이지에서 이를 표시하는 예제입니다. 이를 통해 입력 데이터를 유지하고 활용하는 방법을 배울 수 있습니다.
import streamlit as st
# session_state에 사용자 이름 초기화
if 'username' not in st.session_state:
st.session_state.username = ""
# 텍스트 입력란
name = st.text_input("이름을 입력하세요:", value=st.session_state.username)
# 입력값을 session_state에 저장
if name != st.session_state.username:
st.session_state.username = name
# 저장된 이름 표시
if st.session_state.username:
st.write(f"안녕하세요, {st.session_state.username}님!")
설명: