Streamlit 다중 page 구성하기
Streamlit 다중 page 구성하기
Streamlit의 page_link
을 이용해서 다중 페이지 애플리케이션을 더 간편하게 만들 수 있습니다. 이 글에서는 다중 페이지 애플리케이션을 만드는 방법을 예시와 함께 설명하겠습니다.
프로젝트 구조 설정
프로젝트의 구조를 설정합니다. 각 페이지를 개별 파일로 작성하고, 메인 파일에서 페이지 전환을 관리합니다.
streamlit_app/
├── main.py
├── pages/test_1.py
└── pages/test_2.py
main.py
- 홈 페이지
main.py
는 애플리케이션의 메인 페이지를 정의합니다.
# main.py
import streamlit as st
# 사이드바에서 페이지 선택
= st.sidebar.page_link("main.py", label="Main")
selected_page = st.sidebar.page_link("pages/test_1.py", label="Test 1")
selected_page = st.sidebar.page_link("pages/test_2.py", label="Test 2")
selected_page
def main():
"Main Page")
st.title("Welcome to the main Page!")
st.write(
main()
st.sidebar.page_link
는 Streamlit에서 다중 페이지 앱 내의 다른 페이지로 또는 외부 URL로 이동할 수 있는 링크를 생성하는 기능입니다. 다른 페이지로 링크할 경우 클릭 시 해당 페이지로 이동하고, 외부 URL로 링크할 경우 새 탭에서 열립니다. 사용자는 링크에 라벨, 아이콘, 툴팁을 추가해 커스터마이징할 수 있습니다. 이를 통해 사용자는 멀티 페이지 앱을 생성할 수 있습니다.
test_1.py
, test_2.py
test_1
과 test_2
파일은 main에서 연결되는 멀티 페이지입니다.
# test_1.py
import streamlit as st
= st.sidebar.page_link("main.py", label="Main")
selected_page = st.sidebar.page_link("pages/test_1.py", label="Test 1")
selected_page = st.sidebar.page_link("pages/test_2.py", label="Test 2")
selected_page
def main():
"Test 1 Page")
st.title("Welcome to the Test 1 Page!")
st.write(
main()
# test_2.py
import streamlit as st
= st.sidebar.page_link("main.py", label="Main")
selected_page = st.sidebar.page_link("pages/test_1.py", label="Test 1")
selected_page = st.sidebar.page_link("pages/test_2.py", label="Test 2")
selected_page
def main():
"Test 2 Page")
st.title("Welcome to the Test 2 Page!")
st.write(
main()
페이지는 로딩시 다시 화면이 생성되기 때문에 각각의 페이지는 page_link를 통해서 side_bar의 페이지 링크를 재 생성합니다.
Session State
session_state는 Streamlit 멀티 페이지 앱에서 중요한 이유는 상태 유지와 데이터 공유 때문입니다. 페이지 간에 전환할 때, 기본적으로 Streamlit은 각 페이지가 독립적으로 새로 고쳐지며 이전 상태를 잃게 됩니다.
하지만 session_state를 사용하면 사용자 입력, 선택한 옵션, 페이지 상태 등을 앱의 전체 세션 동안 유지할 수 있습니다. 이를 통해 페이지 간 데이터를 공유하고, 사용자 경험을 향상시킬 수 있습니다. 예를 들어, 로그인 정보나 사용자 설정을 유지하는 데 사용됩니다.
애플리케이션 실행
애플리케이션을 실행하기 위해 터미널에서 다음 명령어를 입력합니다.
streamlit run main.py
Main Page | Test 1 Page | Test 2 Page |
---|---|---|
![]() |
![]() |
![]() |
웹 브라우저에서 애플리케이션이 열리며, 사이드바에서 페이지를 선택할 수 있는 드롭다운 메뉴를 확인할 수 있습니다. 사용자가 메뉴에서 페이지를 선택하면, 선택된 페이지의 콘텐츠가 표시됩니다.
<h3>카테고리 다른 글</h3>
Date | Title | Author |
---|---|---|
Jan 1, 3000 | 전체 카테고리 | |
Sep 21, 2024 | Streamlit 멀티 select 사용하기 | |
Sep 21, 2024 | Streamlit selectbox를 사용하기 | |
Sep 19, 2024 | Streamlit fragments 사용하기 | |
Sep 19, 2024 | Streamlit form 사용하기 | |
Sep 19, 2024 | Streamlit 데이터프레임 수정하기 | |
Sep 19, 2024 | Streamlit fragments 사용하기 | |
Sep 18, 2024 | Streamlit docker로 배포하기 | |
Sep 18, 2024 | Streamlit 실시간 업데이트 사용하기 | |
Sep 18, 2024 | Streamlit에서 다이얼로그 사용하기 | |
Sep 18, 2024 | Streamlit의 유지보수와 디버깅 팁 | |
Sep 17, 2024 | Streamlit cache_resource 사용하기 | |
Sep 16, 2024 | Streamlit cache 사용하기 | |
Sep 15, 2024 | Streamlit 데이터프레임 선택하기 | |
Sep 13, 2024 | Streamlit Session_state 사용하기 | |
Sep 12, 2024 | Streamlit을 활용한 기본 시각화 도구 | |
Sep 12, 2024 | Streamlit에 Plotly 차트 적용하기 | |
Sep 11, 2024 | Streamlit에서 파일 업로드하기 | |
Sep 11, 2024 | Streamlit에 SQLite 데이터베이스 적용 | |
Sep 10, 2024 | Streamlit UI 컴포넌트 소개 | |
Sep 9, 2024 | Streamlit 사용 사례 | |
Sep 9, 2024 | Streamlit 설치 및 환경설정 | |
Sep 9, 2024 | Streamlit 애플리케이션 구조 이해 | |
Sep 9, 2024 | Streamlit layout 설정하는 방법 | |
Sep 8, 2024 | Streamlit이란 무엇인가요? | |
Sep 6, 2024 | Streamlit Cloud로 앱 배포하기 |