반응형
Streamlit
session_state
session 과 같은 개념입니다.
기본 사용법 / 초기화
import streamlit as st
st.session_state['user_name'] # 오류!!
해당 key 가 존재하지 않은데 사용할 경우, 이와같이 오류가 발생합니다.
초기화 방법
if 'user_name' not in st.session_state:
st.session_state['user_name'] = ''
key 체크를 먼저 해주고 기본값을 입력하면 됩니다.
아래와 같이, dictionary 방법과 attribute 방법 모두 사용할 수 있습니다.
import streamlit as st
if 'user_name' not in st.session_state:
st.session_state['user_name'] = 'hello~ bryan'
st.write(st.session_state['user_name']) # hello~ bryan
st.write(st.session_state.user_name) # hello~ bryan
삭제
더 이상 사용하지 않을 거라면 아래와 같이 del 로 삭제할 수 있습니다.
if 'user_name' not in st.session_state:
del st.session_state['user_name']
유용한 사용
input 이나 checkbox, radio 등등 key 속성이 있는 것이라면 아래와 같이 사용할 수 있습니다.
import streamlit as st
st.text_input('input name : ', key='user_name')
st.write(st.session_state.user_name)
주의 해야할 점
import streamlit as st
st.text_input('input name : ', key='user_name')
st.session_state.user_name = 'Hello~ Bryan'
이렇게 하면 오류가 발생합니다.
st.text_input('', key='something') 으로 사용하면 해당 위젯이 인스턴스가 됩니다. 그래서 그 이후로 값 변경을 할 수 없습니다.
import streamlit as st
st.session_state.user_name = 'Hello~ '# 가능
st.session_state.user_name = 'Bryan' # 가능
st.text_input('input name : ', key='user_name') # 가능
st.session_state.user_name = 'Hello~ Bryan' # 오류!!
728x90
반응형
'Python' 카테고리의 다른 글
[PyQT5] 처음부터 따라하기 #1. 프로젝트 생성 및 설치 (0) | 2022.03.16 |
---|---|
[Python] AttributeError: 'NoneType' object has no attribute 'bytes' 오류 해결 (0) | 2022.03.16 |
[Python] [Streamlit 사용법] 3. button (0) | 2022.02.22 |
[Python] matplotlib.pyplot 을 이용해서 line chart 만들기 (0) | 2022.02.20 |
[Python] matplotlib.pyplot 을 이용해서 pie chart 이미지로 만들기 (0) | 2022.02.20 |
댓글