본문 바로가기
Streamlit

[Streamlit] 개발 환경 설정

by dong_seok 2024. 4. 29.
1. config.toml 파일 정의 및 생성
2. config.toml 파일 설정

오늘은 Streamlit 개발 환경을 설정하는 방법 중 하나인 config.toml 파일에 대해 알아보도록 하겠습니다.

1. config.toml 정의

config.toml 파일은 Streamlit 애플리케이션을 설정하기 위한 파일입니다. 이 파일을 통해 애플리케이션의 외관, 동작 및 기타 설정을 조정할 수 있습니다. 파일의 생성 위치는 .streamlit/config.toml  입니다. 이 파일은 특정한 위치에 있어야만 Streamlit이 그 내용을 인식하므로, 생성 위치에 주의해야 합니다. 프로젝트를 처음 만들게되면 .streamlit 이 없기때문에 이전에 디렉터리를 생성하지 않은 경우 추가해줘야합니다.

 

.streamlit/config.toml

 

2. config.toml 파일 설정

다양한 설정이 가능하지만 제가 이번에 프로젝트를 진행하면서 사용한 설정을 중심으로 다루도록 하겠습니다.

 

1) toolbarMode

[client] 에서 설정 가능한 항목으로 앱 오른쪽 상단의 옵션 메뉴 및 설정 대화상자 에서 항목의 가시성을 변경합니다.

 

(1)  "auto"

자동으로 설정되는 기본값이며 로컬 호스트, streamlit 커뮤니티 클라우드에서 앱에 액세스하는 경우 개발자 옵션을 표시하고 그렇지 않으면 숨깁니다.

auto

 

2) "developer" 

Deploy와 Clear cache 를 포함한 개발자 옵션을 같이 보여줍니다

developer

 

3) "viewer"

위에서 나왔떤 개발자 옵션을 제외한 나머지 옵션들만 보여줍니다.

viewer

 

4) "minimal"

st.set_page_config 에서 설정한 옵션만 보여줍니다. 옵션이 있지않다면 메뉴를 숨깁니다.

자세한 설명에 앞서 st.set_page_config에 대해 설명하고 넘어가도록 하겠습니다.

 

st.set_page_config 는 streamlit에서 제공하는 페이지의 기본 설정을 구성할때 사용합니다. 이는 앱 페이지에서 사용되는 첫 번째 streamlit 명령이어야 하며 페이지당 한 번만 설정해야 합니다. Page_title, icon, layout, menu_items 를 다룰 수 있습니다. 아래는 공식 문서에 있는 예시 코드입니다.

import streamlit as st

st.set_page_config(
    page_title="Ex-stream-ly Cool App",
    page_icon="🧊",
    layout="wide",
    initial_sidebar_state="expanded",
    menu_items={
        'Get Help': 'https://www.extremelycoolapp.com/help',
        'Report a bug': "https://www.extremelycoolapp.com/bug",
        'About': "# This is a header. This is an *extremely* cool app!"
    }

우리가 여기서 주목해야 할 점은 menu_items 입니다. 위의 코드를 작성한 후 toolbarMode를 "minimal"로 설정하면 아래 사진과 같은 결과를 얻을 수 있습니다.

minimal

기존에 기본으로 제공되던 옵션과 개발자 옵션이 모두 사라지고 st.set_page_config에서 추가한 메뉴들만 반영된 모습을 볼 수 있습니다. 당연히 클릭하면 입력해둔 문구를 띄워주거나 링크로 이동하게 됩니다. 그렇다면 이 menu_items에 아무것도 입력하지 않는다면 어떻게 될까요?

 

우측 상단에 원래 기본으로 제공되던 옵션이 아에 안보이는 모습을 볼 수 있습니다. 제가 진행중인 프로젝트도 사용자에게 옵션을 제공하지 않기때문에 위와 같은 방법을 적용하였습니다. 추가적으로 제일 상단위 라인이 거슬리는 분들은 css를 사용 적용해서 숨기면됩니다.

 

st.markdown(
    """
    <style>
    header[data-testid="stHeader"] {
        visibility: hidden;
        height: 0%;
    }
    </style>
    """,
    unsafe_allow_html=True
)

 

2) base

[theme] 에서 설정 가능한 항목으로 사용자 정의 테마가 상속하는 미리 설정된 Streamlit 테마입니다. 기본적으로 "light" "dark"  두가지를 제공하고 둘 중 하나를 선택 해서 무난하게 사용해도 되지만 자신이 배경을 커스텀 하고 싶다면 "base"가 아니라 "primaryColor", "backgroundColor" 등 [theme] 에서 제공하는 다양한 설정들을 이용하면 됩니다.

 

 

참고자료

https://docs.streamlit.io/

댓글