iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
AI & Data

跟著黑蛋用Streamlit速成天文資料分析Web App系列 第 10

[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)國際版授權條款」釋出。此系列文也同步在MattersMirror平台連載。


上一篇
[8]:再版系外行星資料表篩選器app,新增資料快取機制
下一篇
[10]:透過Streamlit Cloud一鍵部署app
系列文
跟著黑蛋用Streamlit速成天文資料分析Web App30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言