「跟著黑蛋用Streamlit速成天文資料分析Web App」系列文[9]:將多個單頁apps整合成一個多頁app

PM貳婰舞看到黑蛋在會議中所展示的Streamlit apps,覺得用起來方便且開發快速,所以想要向「天文數智」公司內部其他團隊推廣Streamlit,不過他遇到一個問題,於是詢問黑蛋是否能協助解決:「目前『系外行星資料簡介』和『系外行星資料表篩選器』是兩個分開獨立的單頁apps,要向其他人報告說明時會有點麻煩,而且它們的內容彼此有關聯,是否有方法將它們整合成一個多頁的app?」

黑蛋回說:「我昨天剛好有在Streamlit的文件中看到多頁app的製作教學,感覺不會很困難,OK,我來試試。」

會議結束後,黑蛋先開啟一個命名為Home.py的Python script,並加上一些介紹說明文字,以當作「太陽系外行星資料分析app」的首頁。

# Home.py
import streamlit as st

page_title = '太陽系外行星資料分析app'
st.set_page_config(page_title=page_title, page_icon=':star', layout='wide')
st.title(page_title)

st.info('此Web App是以太陽系外行星資料分析作為範例,用來教學及推廣公民科學,由[蘇羿豪](https://astrobackhacker.tw/)基於[Streamlit](https://streamlit.io/)開發,[程式碼](https://github.com/YihaoSu/ExoplanetDataAnalysisStreamlitUI)以MIT授權條款開源,並將開發過程紀錄在2022 iThome鐵人賽的系列文章「[跟著黑蛋用Streamlit速成天文資料分析Web App](https://ithelp.ithome.com.tw/users/20103436/ironman/5820)」中。')
st.markdown('* Exoplanet data intro頁面介紹何謂太陽系外行星,以及如何取得公開的太陽系外行星資料。')
st.markdown('* Exoplanet table filter頁面呈現從[NASA系外行星資料庫](https://exoplanetarchive.ipac.caltech.edu/)取得的資料表,並提供資料篩選及匯出CSV檔的功能。')

然後,他於Home.py所處的資料夾中,另外新增一個命名為pages的資料夾,並且將「系外行星資料簡介」和「系外行星資料表篩選器」兩個apps所屬的Python scripts移至pages資料夾內,以當作「太陽系外行星資料分析app」的另外兩個頁面。如此一來,當他在終端機執行以下指令,就能啟動整合好後的多頁app囉。

streamlit run Home.py

不過,黑蛋留意到,pages資料夾內的Python scripts的檔名,會影響到左側邊欄頁面入口所呈現的名稱及排序,他看了相關規則說明後,於是將它們更名為01_Exoplanet_data_intro.py和02_Exoplanet_table_filter.py。

此系列文由蘇羿豪撰寫,以「創用CC 姓名標示 4.0(CC BY 4.0)國際版授權條款」釋出。

Subscribe to 天文背包黑客
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.