페이지 이동과 링크
지난 시간엔 페이지를 나눴지? 그런데 사이드바 메뉴 말고, 본문 안의 버튼이나 링크로도 페이지를 오가게 하고 싶을 때가 있다냥. "다음 페이지 →" 버튼 같은 거 말이다냥. 오늘은 그걸 배워보자냥!
오늘의 학습 목표
st.page_link로 본문에 페이지 링크를 넣는다.- 외부 사이트로 가는 링크 버튼을 만든다.
st.navigation으로 메뉴를 직접 구성하는 법을 안다.
streamlit1.40 이상파이썬 코드로 웹 화면 만들기
설치하기 — 터미널에 그대로 붙여넣기
pip install "streamlit>=1.40"설치 확인 — 버전 번호가 찍히면 성공
python -c "import streamlit; print(streamlit.__version__)"위 버전은 최소 기준이라, 더 높은 버전이 깔려 있으면 그대로 써도 된다냥. 버전이 안 찍히고 에러가 나면 설치가 안 된 거라 설치 명령을 다시 실행해보자냥.
1단계 · 본문 속 페이지 링크 — page_link
st.page_link 는 화면 아무 데나 놓을 수 있는 페이지로 가는 링크라냥.
사이드바가 아니라 본문 한가운데에 "메뉴 보러 가기" 같은 링크를 넣을 수
있다냥.
import streamlit as st
st.title("환영한다냥")
st.write("어디로 갈지 골라보자냥")
st.page_link("pages/1_소개.py", label="소개 보기")
st.page_link("pages/2_메뉴.py", label="메뉴 보기")label 은 링크에 보이는 글자라냥
label="소개 보기" 가 화면에 보이는 링크 글자다냥. icon 을 주면 작은
아이콘도 붙일 수 있다냥. 안내 화면(홈)에서 다른 페이지로 안내할 때
딱이다냥!
2단계 · 외부 사이트 링크
내 페이지뿐 아니라 바깥 사이트로 가는 링크도 만들 수 있다냥. 주소를 그대로 넣으면 된다냥.
import streamlit as st
st.page_link("https://streamlit.io", label="Streamlit 공식 사이트")
st.link_button("유튜브로 가기", "https://youtube.com")page_link vs link_button
st.page_link: 링크 글자 모양st.link_button: 눌리는 버튼 모양
둘 다 하는 일은 비슷하다냥. 버튼처럼 보이게 하고 싶으면 link_button
을 쓴다냥!
3단계 · 메뉴를 직접 짜기 — navigation (심화)
24강의 pages 폴더 방식은 편하지만, 메뉴를 더 자유롭게 꾸미고 싶을 때가
있다냥. st.navigation 을 쓰면 어떤 페이지를 어떤 순서로 묶을지 직접
정할 수 있다냥. 조금 어려우니 가볍게 봐두자냥.
import streamlit as st
home = st.Page("home.py", title="홈")
about = st.Page("about.py", title="소개")
menu = st.Page("menu.py", title="메뉴")
nav = st.navigation([home, about, menu])
nav.run()언제 navigation 을 쓰냥
- 간단한 앱 → 24강의
pages폴더로 충분하다냥. - 메뉴를 그룹으로 묶거나, 순서·이름을 세밀하게 정하고 싶을 때 →
st.navigation이 좋다냥.
지금은 pages 폴더 방식만 확실히 익혀도 충분하다냥. navigation 은
"이런 것도 있다" 정도로 기억해두자냥!
복습 퀴즈
페이지를 자유롭게 오갈 수 있게 됐다냥! 다음 시간은 심화 강이라냥. 앱이 느려질 때 확 빠르게 만드는 마법, 캐시 를 배워본다냥.
