前言
Python 本身并不是為前端開發而設計的語言,但確實有一些 Python 框架可以“變相”地用于前端開發,比如生成 HTML、控制前端頁面邏輯,甚至可以直接運行在瀏覽器中。
目標
本文將對常見的使用python實現的前端框架,先做一個大概的學習總結,后續會有一系列的關于具體框架的詳細介紹,各位看官可以先點擊關注收藏。
重點看本篇最后的詳細介紹部分,你會有驚喜的發現。
前端框架/工具列表介紹
為了方便學習,這里整理了的常見 Python 前端框架/工具,包括它們的名稱、類型、應用范圍、默認端口、啟動方式、啟動命令等信息,具體列表如下,看看是否有你想要了解的,或者我沒有整理的,也方便留言。
名稱 | 類型 | 應用范圍 | 端口/運行環境 | 啟動方式/命令 | 特點/備注 |
---|---|---|---|---|---|
Streamlit | Web UI 框架 | 數據展示、儀表板、快速原型 | 默認 8501 | streamlit run app.py | 極簡前端,可快速構建數據應用 |
Gradio | Web UI 框架 | AI Demo、模型接口、前端交互 | 默認 7860 | gradio.Interface(...).launch() | 簡潔美觀,適合部署 AI 接口 |
Dash | Web UI 框架 | 數據可視化、Plotly 圖表展示 | 默認 8050 | app.run_server() | 基于 Flask + React,強可視化支持 |
Flask + Jinja2 | 模板引擎 + 后端框架 | 網頁生成、服務端渲染 SSR | 默認 5000 | flask run or python app.py | 使用 Jinja2 模板生成 HTML |
Django + Templates | 模板引擎 + 后端框架 | 全棧網站開發、內容管理 | 默認 8000 | python manage.py runserver | 集成完整功能,適合中大型項目 |
Anvil | 云端全棧框架 | 可視化 Web App、拖拽式 UI 構建 | 云端/瀏覽器 | 無本地端口,云端部署 | 拖拽式開發、支持 Python 全棧 |
PyWebIO | 純 Python Web UI | 教學、小工具、交互式問答 | 默認 8080 | pywebio.start_server() | 無需 HTML/CSS,類似命令行交互的 Web UI |
NiceGUI | Web UI 框架 | 簡潔現代 UI,快速構建 Web 應用 | 默認 8080 | from nicegui import ui | 類似 Streamlit,但組件更多樣 |
Panel | 數據分析/科學可視化 | 可嵌入 Jupyter 或獨立網頁應用 | 默認 5006 | panel serve app.py | 支持交互式小部件,適合科研可視化 |
PyScript | WebAssembly 工具 | 在瀏覽器中直接運行 Python 前端邏輯 | 瀏覽器 | 放入 HTML <py-script> 標簽 | 可直接在 HTML 中嵌入 Python |
Brython | JS 替代工具 | 用 Python 編寫瀏覽器端 JS 腳本 | 瀏覽器 | 嵌入 <script type="text/python"> | 替代 JS 的嘗試,適合簡單交互 |
Flask + HTMX/Tailwind | 現代 SSR 風格組合 | 服務端生成+前端增強交互 | 默認 5000 | flask run | 利用 HTMX 做無刷新交互,保持前后端一致 |
Toga (BeeWare) | 桌面 GUI,也支持 Web | 跨平臺 GUI 應用(Web/桌面/移動) | WebView | python app.py | 多平臺運行,Web 使用時基于 WebView 或 HTML5 |
簡要分類
簡單分為六大類別,如下:
類別 | 對應框架 | 適合人群 / 應用場景 |
---|---|---|
Web App 快速開發 | Streamlit, Gradio, NiceGUI, Dash | AI Demo、數據看板、內部工具 |
服務端渲染網站 | Django, Flask + Jinja2, HTMX組合 | 內容管理系統、博客、門戶網站 |
教學/交互工具 | PyWebIO, Panel | 編程教學、小工具開發 |
純前端運行(瀏覽器中運行 Python) | PyScript, Brython | 簡易交互、教學演示、JS 替代嘗試 |
云端可視化平臺 | Anvil | 小白拖拽開發、SaaS Demo、表單應用 |
多端 GUI 支持 | Toga (BeeWare) | 想用 Python 寫跨平臺 GUI 的開發者 |
詳細介紹
后續會有一系列的篇幅來分別對這些框架做下詳細的介紹
系列編號 | 標題 |
---|---|
第01篇 | Python開源庫 Streamlit 詳細介紹 |
第02篇 | Gradio 入門實戰:幾行代碼部署你的 AI 模型界面 |
第03篇 | Dash 快速上手指南:用 Python 做炫酷圖表網站 |
第04篇 | NiceGUI 入門實戰:簡約風 Python 網頁新體驗 |
第05篇 | Panel入門實戰:快速構建交互式 Web 應用和大模型介紹 |
第06篇 | Django 零基礎起步:開發你的網站第一步 |
第07篇 | 待定。。。。。計劃6/27/28日出 |