본문 바로가기

Python/Streamlit

Python Streamlit 알아보기 (6-1):Input widgets

반응형

Python Streamlit 알아보기 (6-1):Input widgets

이번 포스트에서는 Streamlit의 Input widgets에 대해서 알아보고자 한다.

원래는 Chart Elements에서 사용하는 다른 기능들에 대해서 먼저 하려 했으나, 다른 Python Chart 관련 라이브러리들도 함께 봐야해서 다음에 다시 정리하려 한다.

Streamlit의 Input widgets는 사용자와의 상호작용을 가능하게 하는 요소들이다.
사용자가 데이터를 입력하거나 선택할 수 있게 하여, 애플리케이션의 동적인 기능을 제공한다.
예를 들어, 텍스트 입력, 슬라이더, 체크박스 등이 있어 사용자의 입력을 받아 애플리케이션의 출력을 변경할 수 있다.

그럼 어떤 Input widgets이 있는지 하나씩 알아보자.

목차

Button

✔ st.button

Streamlit의 st.button은 사용자가 클릭할 수 있는 버튼을 생성하는 위젯이다.
이를 통해 사용자는 애플리케이션 내에서 특정 동작을 촉발할 수 있다.
예를 들어, 데이터를 불러오거나, 분석을 실행하거나, 시각화를 변경하는 등의 동작을 수행할 때 사용된다.

st.button(label,
       key=None,
       help=None,
       on_click=None,
       args=None,
       kwargs=None,
       *,
       type="secondary",
       disabled=False,
       use_container_width=False)

📌 st.button 인자

  • label
    버튼에 표시될 짧은 라벨로, 굵은 글씨, 기울임꼴, 인라인 코드, 이모지 지원.
  • key
    위젯의 고유 식별자
  • help
    마우스를 올렸을 때 표시되는 도움말 텍스트
  • on_click
    버튼 클릭 시 호출될 콜백 함수
  • args
    콜백에 전달할 인자
  • kwargs
    콜백에 전달할 키워드 인자
  • type
    버튼 타입으로 "secondary", "primary"이 있으며, 기본값은 "secondary"이다.
  • disabled
    True로 설정하면 버튼이 비활성화됨. 기본값은 False.
  • use_container_width
    True로 설정하면 버튼 너비가 부모 컨테이너와 동일해짐.

# Example
btn = st.button("Click me", type="primary")
if btn :
    st.write("You clicked me!")

st.button

Download Button

✔ st.download_button

Streamlit의 st.download_button은 사용자가 애플리케이션에서 직접 파일을 다운로드할 수 있는 버튼을 생성하는 위젯입니다.
이 위젯을 통해 텍스트, 이미지, 데이터 파일 등 다양한 종류의 파일을 사용자에게 제공할 수 있다.
사용자가 이 버튼을 클릭하면, 지정한 파일이 자동으로 다운로드되며, 보고서나 데이터 세트 등을 사용자에게 전달할 때 매우 유용하다.

st.download_button(label, 
       data, 
       file_name=None, 
       mime=None, 
       key=None, 
       help=None, 
       on_click=None, 
       args=None, 
       kwargs=None, 
       *, 
       type="secondary", 
       disabled=False, 
       use_container_width=False)

📌 st.download_button 인자

  • label
    사용자에게 버튼 용도를 설명하는 짧은 라벨.
  • data
    다운로드할 파일의 내용.
  • file_name
    다운로드할 파일의 이름. 지정하지 않으면 자동으로 생성된다.
  • mime
    데이터의 MIME 타입. 지정하지 않으면 데이터 유형에 따라 자동으로 설정.
  • key
    위젯의 고유 키.
  • help
    버튼에 마우스를 올렸을 때 표시되는 도움말 툴팁.
  • on_click
    버튼 클릭 시 호출될 콜백 함수.
  • args
    콜백 함수에 전달할 인수.
  • kwargs
    콜백 함수에 전달할 키워드 인수.
  • type
    버튼 유형. "primary"는 강조 버튼, "secondary"는 일반 버튼이다.
  • disabled
    버튼을 비활성화. 기본값은 False.
  • use_container_width
    버튼의 너비를 부모 컨테이너의 너비에 맞춘다.

# Example
download = st.download_button(
    label="Download this file",
    data=b"Hello, world!",
    file_name="hello.txt",
    mime="text/plain",
)

st.download_button

Link Button

✔ st.link_button

Streamlit의 st.link_button은 사용자가 클릭할 수 있는 버튼을 생성하고, 이 버튼을 클릭하면 지정한 URL로 사용자를 리디렉션하는 기능을 제공한다.
이 위젯은 사용자에게 외부 리소스나 관련 웹페이지로 쉽게 안내할 수 있는 효과적인 방법이다.
st.link_button은 웹사이트, 문서, 기타 외부 링크를 애플리케이션 사용자에게 제공하고자 할 때 사용된다.

st.link_button(label, 
       url, 
       *, 
       help=None, 
       type="secondary", 
       disabled=False, 
       use_container_width=False)

📌 st.link_button 인자

  • label
    사용자에게 버튼 용도를 설명하는 라벨. 마크다운을 포함할 수 있으며, 특정 스타일과 이모지 지원.
  • url
    클릭 시 열리는 URL
  • help
    버튼 위에 마우스를 올렸을 때 표시되는 도움말 툴팁
  • type
    버튼 유형 ("primary" 또는 "secondary"), 기본값은 "secondary"
  • disabled
    버튼 비활성화 여부, 기본값은 False
  • use_container_width
    버튼 너비를 부모 컨테이너의 너비에 맞춤

# Example
link = st.link_button("Go to Data elemetns Page", url="Data_elements")
google_link = st.link_button("Go to Google", url="https://google.com")

st.link_button

Page Link

✔ st.page_link

Streamlit의 st.page_link멀티페이지 애플리케이션에서 사용되며, 사용자가 다른 페이지로 이동할 수 있는 하이퍼링크를 생성한다.
st.link_button과 다르게 링크의 라벨과 아이콘을 추가하여 사용자 인터페이스의 시각적 요소를 강화할 수 있다.

st.page_link(page, 
       *, 
       label=None, 
       icon=None, 
       help=None, 
       disabled=False, 
       use_container_width=None)

📌 st.page_link 인자

  • page
    멀티페이지 앱 내 다른 페이지나 외부 페이지로 이동하는 링크의 경로 또는 URL.
  • label
    페이지 링크의 라벨. 외부 페이지에는 필수이며 Markdown 지원.
  • icon
    링크 아이콘으로 사용될 이모지. 단일 문자 사용 권장.
  • help
    링크 위에 마우스를 올렸을 때 표시되는 도움말 툴팁.
  • disabled
    페이지 링크 비활성화 여부. 기본값은 False.
  • use_container_width
    링크 너비를 부모 컨테이너의 너비에 맞춤.

# Example
st.page_link("https://www.google.com", label="Google", icon="🔗")
st.page_link("pages/Data_elements.py", label="Data Elements", icon="🪪")

st.page_link

Checkbox

✔ st.checkbox

Streamlit의 st.checkbox는 사용자가 선택할 수 있는 체크박스를 생성하는 위젯이다.
이를 통해 사용자는 주어진 옵션에 대해 체크할 수 있으며, 이 선택은 애플리케이션의 로직 또는 표시되는 데이터를 조건적으로 제어하는 데 사용될 수 있다.
예를 들어, 특정 데이터 세트를 필터링하거나, 추가 정보를 표시하거나 숨기는 등의 동작에 활용될 수 있겠다.

st.checkbox(label, 
       value=False, 
       key=None, 
       help=None, 
       on_change=None, 
       args=None, 
       kwargs=None, 
       *, 
       disabled=False, 
       label_visibility="visible")

📌 st.checkbox 인자

  • label
    체크박스가 무엇을 위한 것인지 설명하는 라벨.
  • value
    체크박스가 처음 렌더링될 때 사전 선택 여부.
  • key
    위젯의 고유 키로 사용되는 선택적 문자열 또는 정수.
  • help
    체크박스 옆에 표시되는 선택적 도구 설명.
  • on_change
    체크박스의 값이 변경될 때 호출되는 콜백.
  • args
    콜백에 전달할 선택적 args 튜플.
  • kwargs
    콜백에 전달할 선택적 kwargs 딕셔너리.
  • disabled
    True로 설정하면 체크박스를 비활성화.
  • label_visibility
    라벨의 가시성. "visible", "hidden", "collapsed"을 사용할 수 있으며, 기본값은 "visible"이다.

# Example
chk = st.checkbox("Check me") #  label_visibility="visible"
if chk :
    st.write("You checked me!")

hidden_chk = st.checkbox("Hidden checkbox", label_visibility="hidden")

st.checkbox

Toggle

✔ st.toggle

Streamlit의 st.togglest.checkbox와 큰 차이가 없다.
단순하게 UI 차이라고만 생각하면 될 것 같다.

st.toggle(label, 
       value=False, 
       key=None, 
       help=None, 
       on_change=None, 
       args=None, 
       kwargs=None, 
       *, 
       disabled=False, 
       label_visibility="visible")

📌 st.toggle 인자

  • label
    토글의 라벨
  • value
    토글이 처음 렌더링될 때의 사전 선택 여부
  • key
    위젯의 고유 식별자
  • help
    토글 옆에 표시되는 도구 설명
  • on_change
    이 토글의 값이 변경될 때 호출되는 콜백 함수
  • args
    콜백 함수에 전달할 추가적인 args 튜플
  • kwargs
    콜백 함수에 전달할 추가적인 kwargs 딕셔너리
  • disabled
    토글을 비활성화하고자 할 때 사용. True로 설정하면 토글을 비활성화
  • label_visibility
    라벨의 가시성. "visible", "hidden", "collapsed"을 사용할 수 있으며, 기본값은 "visible"이다.

# Example
toggle = st.toggle("Toggle me", key="toggle")
if toggle :
    st.write("You toggled me!")

st.toggle

이번 포스트에서는 Streamlit에서 사용할 수 있는 Button, Checkbox, 하이퍼 링크, 다운로드 버튼에 대해서 먼저 알아보았다.
Input widgets 종류가 꽤 많아서 이번 포스트는 총 3개로 나눠서 작성해야겠다.
다음 포스트에서는 radio, selectbox, multiselect 등 다른 위젯들을 알아보겠다.

커피 한 잔으로
저를 응원해주세요!
반응형

loading