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)國際版授權條款」釋出。