Streamlit에서 레이아웃는 애플리케이션의 외관과 구성을 보다 효율적으로 관리하고 구조화하는데 사용되는 기능들입니다. Streamlit은 기본적으로 단일 페이지를 지원하지만 Streamlit에서 제공하는 기능들을 통해 여러 개의 컬럼으로 레이아웃을 나눌 수 있으며, 각 컬럼에 요소를 배치하여 UI를 효과적으로 구성할 수 있습니다. 또한 특정 요소들을 묶어서 스타일링이나 레이아웃 관리를 용이하게 할 수 있습니다.

레이아웃 구성을 통해 애플리케이션을 보다 구조화하고 사용자 경험을 개선하는데 유용합니다. 애플리케이션의 디자인을 효율적으로 구성하고 관리하면서, 사용자가 보다 쉽고 편리하게 이용할 수 있도록 도와줍니다.

6.1 st.sidebar

st.sidebar 소개

사이드 바를 생성하여 요소들을 사이드 바 구성에 추가할 수 있습니다. 작성된 요소들은 왼쪽에 고정되어 사용자가 콘텐츠에 집중할 수 있습니다. 이때, 사이드바의 크기를 오른쪽 테두리를 드래그 앤 드롭하여 크기를 조정하실 수 있습니다.

스크린샷 2023-06-26 오후 10.57.07.png

표기법

st.sidebar 객체 표기법과 with 표기법을 사용하여 요소를 전달할 수 있습니다.

예시

다음 예시는 사이드 바에 **st.selectbox**와 st.checkbox 위젯과 st.echo, **st.spinner**를 추가한 예시입니다.

import streamlit as st
import time

add_selectbox = st.sidebar.selectbox("어떤 차트를 조회할까요?",
                                     ("막대", "꺾은선", "히스토그램", "히트맵"))

with st.sidebar:
    st.checkbox("제목")
    st.checkbox("축제목")
    st.checkbox("눈금선")        
    st.checkbox("범례")

with st.sidebar:
    with st.echo():
        st.write("코드 블록 입니다.")

    with st.spinner("Loading..."):
        time.sleep(5)
    st.success("끝!")

스크린샷 2023-06-26 오후 11.08.43.png

스크린샷 2023-06-26 오후 11.09.09.png

6.2 st.columns