Streamlit + GitHub 如何變成 Web App

更新 發佈閱讀 8 分鐘

1. 先理解整體架構

當你看到一個 Streamlit 網頁 App(例如部署在 Streamlit Community Cloud),其實背後流程是:

使用者瀏覽器

HTTP Request

Streamlit Server (雲端)

│ 讀取

GitHub Repository

│ Python 程式

Streamlit Runtime


生成 Web UI

簡單說:

GitHub = 程式碼倉庫

Streamlit = UI框架 + Web Server

Cloud = 執行環境


2. 整個流程怎麼實現

假設你要做一個 資料分析 Web App

Step1:寫一個 Streamlit Python 程式

例如:

import streamlit as st
import pandas as pd

st.title("My Data App")

file = st.file_uploader("Upload CSV")

if file:
df = pd.read_csv(file)
st.write(df)

Streamlit 做了幾件事:

1️⃣ 建立 Web Server

2️⃣ 把 Python UI 轉成 HTML

3️⃣ 用 WebSocket 與前端同步


3. 把程式放到 GitHub

例如:

Repository

my-streamlit-app

├── app.py
├── requirements.txt

requirements.txt

streamlit
pandas

GitHub 只是 存放程式碼

常用平台:

  • GitHub
  • GitLab

4. Streamlit Cloud 連動 GitHub

當你在

Streamlit Community Cloud

vocus|新世代的創作平台


建立 App 時

你會:

1️⃣ 登入 GitHub

2️⃣ 選擇 repo

3️⃣ 選擇 app.py


Streamlit 會做:

Clone GitHub Repo

建立 Python Environment

pip install requirements.txt

執行 streamlit run app.py

建立 Web Server

所以 GitHub 其實只是程式來源


5. 真正的底層邏輯

很多人以為 Streamlit 是把 Python 轉 HTML

其實不是。

它是:

Python Backend
+
React Frontend
+
WebSocket Sync

架構:

Browser

│ WebSocket

Streamlit Server


Python Script

核心技術:

技術用途Python寫程式ReactUIWebSocket即時同步TornadoWeb server

Streamlit 的 Server 是基於

Tornado Web Server


6. Streamlit 的「重新執行」機制

Streamlit 有一個很特別的設計:

整個 script 每次互動都會重新執行

例如:

x = st.slider("number")
st.write(x)

流程:

User拖動slider


Frontend event


WebSocket傳給Backend


重新執行Python Script


更新UI

所以 Streamlit 的程式其實像:

UI = Python Script 的輸出

不是 MVC。


7. GitHub 自動更新機制

當你 push code:

git push

Streamlit Cloud 會:

GitHub webhook


偵測到 repo 更新


重新 build


重新部署 App

流程:

Developer

git push


GitHub

webhook

Streamlit Cloud

Rebuild

Web App 更新

8. Streamlit App 的實際運作流程

當使用者開啟網站:

User打開網址


HTTP Request


Streamlit Server


執行 Python Script


生成 UI JSON


React 前端 render

互動時:

UI操作


WebSocket


Python重新執行


更新UI

9. GitHub + Streamlit 的完整架構

整體:

Developer


GitHub Repo


Streamlit Cloud


Docker Environment


Python Runtime


Web Server


User Browser

10. 一個完整範例專案

專案結構:

streamlit-demo

├── app.py
├── requirements.txt
├── data
│ └── sample.csv

app.py

import streamlit as st
import pandas as pd

st.title("Sales Dashboard")

df = pd.read_csv("data/sample.csv")

st.bar_chart(df["sales"])

requirements.txt

streamlit
pandas

部署:

1️⃣ push 到 GitHub

2️⃣ Streamlit Cloud connect repo

3️⃣ deploy

網址就會變成:

https://xxx.streamlit.app
留言
avatar-img
螃蟹_crab的沙龍
167會員
322內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。 興趣是攝影,踏青,探索未知領域。 人生就是不斷的挑戰及自我認清,希望老了躺在床上不會後悔自己什麼都沒做。
螃蟹_crab的沙龍的其他內容
2025/11/20
在 Python 使用 Matplotlib 畫圖時,最常遇到的問題就是: 中文無法顯示,變成方框或亂碼。 尤其當你要畫圖表並添加標題、座標軸名稱等中文時,常會看到: □ □ □ □ 或 � � � → 非常影響閱讀。 本篇教學帶你: 自動尋找系統中可用的中文字體(Windows / Ma
Thumbnail
2025/11/20
在 Python 使用 Matplotlib 畫圖時,最常遇到的問題就是: 中文無法顯示,變成方框或亂碼。 尤其當你要畫圖表並添加標題、座標軸名稱等中文時,常會看到: □ □ □ □ 或 � � � → 非常影響閱讀。 本篇教學帶你: 自動尋找系統中可用的中文字體(Windows / Ma
Thumbnail
2025/07/29
在資料視覺化專案中,如果你需要在網頁上呈現大量項目,例如圖片、紀錄、分析結果,一次性載入所有內容可能會讓使用者介面卡頓或混亂。 本篇教學會引導你如何使用 Python 的 Dash 框架,製作一個具有「分頁功能」的網頁應用,讓使用者可以滑動頁面選擇器 (Slider) 分頁檢視資料。 🧩 功
Thumbnail
2025/07/29
在資料視覺化專案中,如果你需要在網頁上呈現大量項目,例如圖片、紀錄、分析結果,一次性載入所有內容可能會讓使用者介面卡頓或混亂。 本篇教學會引導你如何使用 Python 的 Dash 框架,製作一個具有「分頁功能」的網頁應用,讓使用者可以滑動頁面選擇器 (Slider) 分頁檢視資料。 🧩 功
Thumbnail
2025/07/17
Dash 是由 Plotly 所開發的 Python Web 應用框架,用來快速建構互動式資料視覺化應用。dcc.Graph 是 Dash 中的核心元件之一,用來顯示圖表(基於 Plotly 的視覺化功能),支援互動操作如滑鼠移動、點擊、縮放等。 📌 什麼是 dcc.Graph? dcc.G
Thumbnail
2025/07/17
Dash 是由 Plotly 所開發的 Python Web 應用框架,用來快速建構互動式資料視覺化應用。dcc.Graph 是 Dash 中的核心元件之一,用來顯示圖表(基於 Plotly 的視覺化功能),支援互動操作如滑鼠移動、點擊、縮放等。 📌 什麼是 dcc.Graph? dcc.G
Thumbnail
看更多
你可能也想看
Thumbnail
將複雜的投資過程簡化,透過Python、Streamlit、AI和金融資料視覺化,打造一個溫柔易用的美股投資決策輔助工具。此專案著重使用者體驗,提供客製化投資組合、績效追蹤和教育資源,幫助新手輕鬆上手。
Thumbnail
將複雜的投資過程簡化,透過Python、Streamlit、AI和金融資料視覺化,打造一個溫柔易用的美股投資決策輔助工具。此專案著重使用者體驗,提供客製化投資組合、績效追蹤和教育資源,幫助新手輕鬆上手。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
在 Python 自動化領域中,pyautogui 是非常常用的工具,可以幫你模擬滑鼠與鍵盤操作。 這篇帶你快速掌握: ✔ 滑鼠移動 ✔ 點擊操作 ✔ 拖曳 ✔ 滾動
Thumbnail
在 Python 自動化領域中,pyautogui 是非常常用的工具,可以幫你模擬滑鼠與鍵盤操作。 這篇帶你快速掌握: ✔ 滑鼠移動 ✔ 點擊操作 ✔ 拖曳 ✔ 滾動
Thumbnail
在開始使用 Alpha-Data-Cleaning-Lab 之前,我們需要先準備好它的「大腦」(AI Token)以及「實驗室環境」(Streamlit)。以下是詳細的設定步驟: 1. 取得 AI 的大腦:申請 API Token 這個專案支援多種 AI 模型,你可以根據需求選擇 OpenAI
Thumbnail
在開始使用 Alpha-Data-Cleaning-Lab 之前,我們需要先準備好它的「大腦」(AI Token)以及「實驗室環境」(Streamlit)。以下是詳細的設定步驟: 1. 取得 AI 的大腦:申請 API Token 這個專案支援多種 AI 模型,你可以根據需求選擇 OpenAI
Thumbnail
🔗 StockRevenueLab 資源傳送門 🚀 立即開啟:StockRevenueLab 線上儀表板 (無需安裝,點擊即可直接操作互動圖表) 📂 GitHub 完整專案原始碼 (包含 app.py 核心邏輯與所有環境設定檔) 🐍 Google Colab 自動化抓取程式碼 (一鍵開
Thumbnail
🔗 StockRevenueLab 資源傳送門 🚀 立即開啟:StockRevenueLab 線上儀表板 (無需安裝,點擊即可直接操作互動圖表) 📂 GitHub 完整專案原始碼 (包含 app.py 核心邏輯與所有環境設定檔) 🐍 Google Colab 自動化抓取程式碼 (一鍵開
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
在做自動化工具或測試腳本時,常常會需要操作視窗,例如: 👉 找到特定程式 👉 切換視窗 👉 自動化點擊操作 這時候,pyautogui 是一個很好上手的工具。
Thumbnail
在做自動化工具或測試腳本時,常常會需要操作視窗,例如: 👉 找到特定程式 👉 切換視窗 👉 自動化點擊操作 這時候,pyautogui 是一個很好上手的工具。
Thumbnail
分享如何將個人專案「美股智能投顧」從基於 Streamlit + Google Sheets 的初版,透過引入 Firebase、雙模型驗證、持續陪伴功能、以及雲端原生部署,徹底升級為一個穩定、安全、專業且具備持續成長潛力的產品。
Thumbnail
分享如何將個人專案「美股智能投顧」從基於 Streamlit + Google Sheets 的初版,透過引入 Firebase、雙模型驗證、持續陪伴功能、以及雲端原生部署,徹底升級為一個穩定、安全、專業且具備持續成長潛力的產品。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News