Session state란?
- session state 는 streamlit 애플리케이션 내에서 상태를 유지하고 다루는데 사용되는 변수
왜 필요할까?
- 일반적으로 Streamlit은 상태를 유지하지 않음
- 사용자가 애플리케이션과 상호작용할 때마다 각 요청은 새로운 상태를 생성함
- 이러한 방식은 일반적으로 웹 애플리케이션에서 세션이 유지되지 않는 상태로 동작함
- 각 요청 간 이전 상태가 유지되지 않기 때문
- session state를 사용하면, 특정한 요청들 간에도 상태를 유지할 수 있음
👉 이를 통해, streamlit 어플리케이션을 사용자 친화적으로 만들 수 있음
👉 데이터 처리하는 동안 임시로 상태를 유지하는 데 유용함
streamlit에서 session state 사용법
👉 sessionState 라는 커스텀 클래스를 만들어 사용
👉 커스텀 클래스 만드는 예시는 아래와 같다
import streamlit as st
class SessionState:
def __init__(self, **kwargs):
for key, value in kwargs.items():
setattr(self, key, value)
# 사용 예시
def main():
state = SessionState(user_name="", user_age=0)
user_name = st.text_input("이름을 입력하세요:", state.user_name)
user_age = st.number_input("나이를 입력하세요:", value=state.user_age)
state.user_name = user_name
state.user_age = user_age
st.write(f"이름: {state.user_name}, 나이: {state.user_age}")
if __name__ == "__main__":
main()
- 예시에서 SessionState 클래스는 user_name 과 user_age 라는 상태를 유지함
- 사용자가 입력 필드를 통해 이름과 나이를 입력하고, 이는 state 객체를 통해 유지됨
- 이를 통해 애플리케이션 내에서 사용자와 관련된 정보를 저장하고 다룰 수 있게 됨
더 자세한 내용이 궁금하다면 공식 홈페이지도 참고해보자!
[ 공식 홈페이지 ]
https://docs.streamlit.io/library/api-reference/session-state
728x90
'Streamlit' 카테고리의 다른 글
streamlit 배포 준비(2) (0) | 2023.09.01 |
---|---|
streamlit 배포 준비(1) (0) | 2023.09.01 |
Streamlit 이란? (0) | 2023.07.31 |
Streamlit 기본 문법(9) : 사이드바 & selectbox, tab 활용 (0) | 2023.07.28 |
Streamlit 기본 문법(8) : 주식 데이터 조회 페이지 만들기(feat. 사이드바) (0) | 2023.07.28 |