這一周在忙著看 Hahow 企業版的 RAG 教學課程, 今天是端午節補假, 炎炎的夏日午後繼續上週的 Streamlit 測試, 本篇要來測試 Streamlit 的 5 種訊息框元件, 其函式與說明如下表 :
| 訊息框函式 | 說明 |
|---|---|
st.info(body, icon=None) |
顯示資訊訊息框,常用於顯示提示或說明文字。 body: 要顯示的文字內容 icon: 可選圖示 (例如 "ℹ️") |
st.success(body, icon=None) |
顯示成功訊息框,常用於顯示操作成功的回饋。 body: 要顯示的文字內容 icon: 可選圖示 (例如 "✅") |
st.warning(body, icon=None) |
顯示警告訊息框,提醒使用者注意潛在風險。 body: 要顯示的文字內容 icon: 可選圖示 (例如 "⚠️") |
st.error(body, icon=None) |
顯示錯誤訊息框,通常用於錯誤或失敗的狀況。 body: 要顯示的文字內容 icon: 可選圖示 (例如 "❌") |
st.exception(exc) |
顯示例外訊息框,用於顯示 Python 的例外物件及其 traceback。 exc: 要顯示的例外物件 (如 ValueError) |
注意, 這五個元件只是單純輸出顯示, 並非互動式元件, 傳回值均為 None.
1. 提示訊息框 st.info() :
呼叫 st.info() 函式並傳入必要參數 body (要顯示的文字內容) 會建立一個提示訊息框, 其參數結構如下 :
st.info(body, icon=None)
st.info() 的傳回值為 None. 參數 body 為要輸出的提示文字, icon 參數用來指定顯示於提示文字左側的一個 Unicode 編碼的圖示字元, 通常會使用其中的 emoji 表情圖示區段 (U+1F600 ~ U+1F64F), 因為這區段的 Unicode 編碼在大部分的作業系統中會以彩色字型 (color font) 來著色, 從而讓訊息在視覺上更具辨識度或風格.
常用的 emoji 圖示如下表 :
| Emoji 圖示 | 用途說明 |
|---|---|
| ℹ️ | 提示資訊(info) |
| ✅ | 成功、通過 |
| ❌ | 錯誤、失敗 |
| ⚠️ | 警告、注意 |
| 🔥 | 異常、關鍵錯誤(exception) |
| 🚀 | 啟動、部署 |
| 💡 | 提示、靈感 |
| 🔔 | 通知、提醒 |
| 🐞 | 錯誤追蹤(bug) |
| 🧠 | 想法、學習 |
| 🔒 | 安全、隱私 |
| 📅 | 日期、排程 |
更多 emoji 參考 :
注意, Streamlit 的五種訊息框函式只有 st.exception() 沒有 icon 參數 (因為此元件用來輸出除錯訊息給開發人員而非用戶, 不需要表情圖示).
例如 :
測試 1 : 用 st.info() 顯示提示訊息 [看原始碼]
# st-info-test-1.py
import streamlit as st
st.subheader('提示 (info) 訊息框')
st.info('這是預設的提示訊息框')
st.info('這是有 emoji 的提示訊息框', icon="ℹ️")
此例第一個 st.info() 未傳入 icon 參數, 預設僅顯示提示文字; 第二個則傳入表情圖示 ℹ️, 結果如下 :
可見 st.info() 會以淡藍色做為背景色.
注意, emoji 字元並非在每一種程式編輯器都能正常顯示, 例如 Thonny 預設字型為 Consolas, 如果直接複製貼上 emoji 字型 ℹ️ 的話會僅顯示 i :
如果要能顯示 emoji 字型須到 "工具/選項/主題 & 字型" 選單中將字型改為支援 emoji 的字型例如 "Segoe UI Emoji" :
這樣就會顯示 emoji 字元了 (但沒彩色) :
如果是在 Colab 或是 VS Code 編輯器上毋須設定字型直接複製貼上即可顯示 emoji 字元.
2. 錯誤訊息框 st.error() :
此元件用來顯示錯誤訊息, 常用的 emoji 為 ❌, 元件的背景色為紅色, 例如 :
測試 2-1 : 用 st.error() 顯示錯誤訊息 [看原始碼]
# st-error-test-1-1.py
import streamlit as st
st.subheader('錯誤 (error) 訊息框')
st.error('這是預設的錯誤訊息框')
st.error('這是有 emoji 的錯誤訊息框', icon="❌")
結果如下 :
st.error() 通常用在 try except 架構中用來顯示捕捉到的例外與錯誤. 例如 :
測試 2-2 : 在 try except 中用 st.error() 顯示錯誤訊息 [看原始碼]
# st-error-test-1-2.py
import streamlit as st
st.subheader('錯誤 (error) 訊息框')
try:
result=1/0
except Exception as e:
st.error(f'捕捉到除以 0 例外 ({e})', icon="❌")
結果如下 :
3. 警告訊息框 st.warning() :
# st-warning-test-1-1.py
import streamlit as st
st.subheader('警告 (warning) 訊息框')
st.warning('這是預設的警告訊息框')
st.warning('這是有 emoji 的警告訊息框', icon="⚠️")
結果如下 :
4. 成功訊息框 st.success() :
# st-success-test-1-1.py
import streamlit as st
st.subheader('成功 (success) 訊息框')
st.success('這是預設的成功訊息框')
st.success('這是有 emoji 的成功訊息框', icon="✅")
結果如下 :
5. 異常訊息元件 st.exception() :
此元件用來顯示完整的錯誤追蹤訊息 (traceback), 傳入參數為一個 Python 例外物件, 主要是用來在開發與除錯中給程式設計師看的, 與 st.error() 用來顯示錯誤訊息給用戶看用途不同, 所以此函式沒有 icon 參數, 元件的背景色為紅色, 例如 :
測試 5 : 用 st.exception() 顯示異常訊息 [看原始碼]
# st-exception-test-1.py
import streamlit as st
st.subheader('異常 (exception) 訊息框')
try:
result=1/0
except Exception as e:
st.exception(e)
結果如下 :









沒有留言 :
張貼留言