Python 前端框架/工具合集

前言

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篇 待定。。。。。计划6/23/24日出
相关推荐
2501_914245936 分钟前
构建 Go CLI 应用的最佳实践:纯 Go 交互式命令行库选型与使用指南
jvm·数据库·python
m0_514520578 分钟前
Go语言变量如何声明和使用_Go语言变量定义完整教程【通俗】
jvm·数据库·python
John.Lewis11 分钟前
C++进阶(12)附加学习:STL之空间配置器(了解)
开发语言·c++·笔记
weixin_5860614620 分钟前
CSS Grid布局如何解决图片溢出网格单元_设置object-fit与网格尺寸.txt
jvm·数据库·python
计算机徐师兄35 分钟前
Python基于农村和城镇人民生活数据的可视化系统(附源码,文档说明)
python·生活·农村和城镇人民生活数据·python人民生活数据·农村和城镇人民生活数据可视化·生活数据可视化系统·python生活数据的可视化
Byron Loong36 分钟前
【网络】Python 怎么做TCP通讯
网络·python·tcp/ip
ILYT NCTR38 分钟前
爬虫学习案例3
爬虫·python·学习
Greyson139 分钟前
CSS Grid布局如何解决图片溢出网格单元_设置object-fit与网格尺寸.txt
jvm·数据库·python
234710212742 分钟前
4.16 学习笔记
开发语言·软件测试·python
2401_883600251 小时前
Redis如何查询特定用户的排名_利用ZREVRANK指令获取ZSet降序名次
jvm·数据库·python