-
Streamlit 全面介绍与快速上手教程
Streamlit 全面介绍与快速上手教程 Streamlit 是一款开源的Python应用框架,专为数据科学家、分析师和开发者打造,能够以极简的纯Python代码快速将数据脚本、分析模型转化为可交互、可分享的Web应用,无需任何前端开发经验(HTML/CSS/JavaScript),是目前数据领域最流行的快速可视化与应用部署工具之一,被超过90%的财富500强企业所信赖。 一、Streamlit 核心优势 纯Python开发:全程使用Python语法,无前端技术门槛,数据从业者可零成本上手。 开发效率极高:几行代码即可搭建完整Web应用,迭代时保存文件会自动刷新应用,实时预览效果。 天然支持交互:组件调用与变量声明一致,无需编写后端、处理HTTP请求或定义路由,轻松实现交互式控件。 部署便捷多样:可免费将公共应用部署在Streamlit Community Cloud(仅需GitHub账号),也可通过Snowflake实现企业级私有部署,或选择其他自定义部署方式。 生态兼容性强:完美兼容Python主流数据科学库(pandas/numpy/scikit-learn)、可视化库(matplotlib/plotly/Altair/bokeh)、深度学习框架(TensorFlow/PyTorch/Keras)及OpenCV、DECK.GL等工具,还支持自定义组件扩展。 开源免费:基础功能完全开源,社区生态活跃,企业级需求可选择商业部署方案。 二、Streamlit 核心设计原则 Streamlit 围绕三个简单原则构建,让数据应用开发更轻量化: 拥抱脚本化开发:通过简洁的API编写少量代码即可构建应用,文件保存时自动更新,无需重启服务。 无缝融入交互:控件(按钮、下拉框、滑块等)的使用与Python变量声明无异,大幅降低交互开发成本。 即时部署:提供多渠道部署方式,从免费的公共云到企业级的私有部署,按需选择,一键分享。 三、快速安装与环境验证 1. 安装Streamlit Streamlit 可像普通Python库一样通过pip安装,要求Python 3.8及以上版本,执行以下命令: pip install streamlit 2. 验证安装并体验示例应用 安装完成后,执行官方示例命令,自动启动本地服务并打开浏览器展示示例应用,验证环境是否正常: streamlit hello 执行后会在本地启动一个Web服务(默认地址:http://localhost:8501),浏览器会自动打开包含多个经典示例的Streamlit应用,可直观感受其交互与可视化能力。 3. 免本地安装体验 如果不想在本地安装,可通过浏览器在线沙盒体验(Streamlit官网提供),直接在网页中编写并运行Streamlit代码,快速试玩。 四、第一个Streamlit 应用:5分钟快速搭建 1. 新建Python文件 创建一个名为my_first_app.py的Python文件,放在任意目录下。 2. 编写核心代码 以下代码实现标题、文本、读取CSV数据、绘制折线图的基础功能,全程仅几行代码: # 导入streamlit库,约定简写为st import streamlit as st # 导入数据处理库pandas import pandas as pd # 编写一级标题和markdown文本 st.write(""" # 我的第一个Streamlit应用 Hello *World!* 🐍 这是一个极简的Streamlit数据可视化应用 """) # 读取本地CSV数据(替换为你的数据文件路径) df = pd.read_csv("my_data.csv") # 若无数据,可先用pd.DataFrame生成测试数据 # 直接绘制折线图,Streamlit自动渲染 st.line_chart(df) 测试数据替代方案:若没有my_data.csv,可添加以下代码生成模拟数据,替代上述读取CSV的行: import numpy as np # 生成时间序列模拟数据 df = pd.DataFrame( np.random.randn(100, 3), # 100行3列的随机数 columns=["A列", "B列", "C列"], index=pd.date_range(start="2025-01-01", periods=100) ) 3. 运行应用 在终端进入my_first_app.py所在目录,执行以下命令启动应用: streamlit run my_first_app.py 执行后浏览器会自动打开http://localhost:8501,即可看到你的第一个Streamlit应用,修改代码并保存后,页面会自动刷新,实时查看修改效果。 五、Streamlit 核心基础组件使用 Streamlit 提供了丰富的内置组件,实现交互、文本、可视化、媒体等功能,核心组件调用方式极简,以下是最常用的基础组件:…
-
Toonflow Web 前端项目技术架构解析
Toonflow Web 前端项目技术架构解析 Toonflow Web 前端项目技术架构文档 文档对应项目仓库:https://gitee.com/HBAI-Ltd/Toonflow-web Toonflow Web 是 Toonflow AI短剧工厂的专属前端操作端,基于 Vue 3 + TypeScript + Vite 构建的现代化单页应用,作为整个Toonflow系统的前端交互层,承接用户所有可视化操作,通过HTTP/WebSocket与Toonflow-app后端服务通信,实现短剧创作从小说导入到视频生成的全流程管控。本文档从架构设计、技术栈体系、核心模块、项目结构、工程化实践、部署方案六大维度,完成前端项目的源码级技术架构解析,为二次开发、定制化改造、问题排查提供完整参考依据。 一、前端整体架构设计 Toonflow Web 采用分层架构 + 组件化开发 + 状态集中管理的现代化前端设计模式,遵循「高内聚、低耦合、可扩展、高性能」核心原则,整体架构适配浏览器独立访问、桌面端内嵌(Electron)、云端部署三种运行形态,同时基于Vue 3组合式API实现逻辑复用,结合Vite极速构建能力,兼顾开发效率与用户体验。 1.1 架构分层设计(从下到上) 各分层职责边界清晰,通过标准化接口实现通信,新增功能仅需在对应分层扩展,无需修改现有代码,降低功能扩展的耦合度。 基础支撑层:负责工程化配置、环境变量管理、全局类型声明、依赖包管理,是项目运行的基础,对应根目录下的vite.config.ts、tsconfig.json、.env.dev/.env.prod等配置文件。 工具函数层:封装全局通用的工具能力,包括网络请求、数据解析、时间处理、图片操作、防抖节流等,提供标准化的工具方法供上层调用,对应src/utils目录。 通用组件层:抽离项目中复用性高的基础UI组件和业务组件,实现组件化复用,降低开发成本,保证页面风格与交互逻辑的一致性,对应src/components目录。 状态管理层:基于Pinia实现前端状态的集中管理与持久化,按业务域拆分Store,实现跨组件状态共享、统一维护,对应src/stores目录。 业务页面层:承接具体的业务交互逻辑,组合通用组件与业务组件实现页面级功能,按短剧创作业务流程划分子模块,对应src/views目录。 路由导航层:负责前端路由的定义、守卫、懒加载,实现页面跳转与权限控制,是前端页面的统一访问入口,对应src/router目录。 1.2 核心设计原则 组件化复用:将通用UI元素和业务逻辑抽离为独立组件,支持全局复用,减少重复开发,组件间通过Props、Emits、V-Model实现标准化通信。 状态分层管理:全局状态由Pinia集中管理,页面级状态由组件自身维护,局部状态由组合式API的ref/reactive管理,避免状态混乱。 工程化标准化:统一代码规范、构建规范、提交规范,结合ESLint、Prettier实现代码质量自动化管控,提升团队协作效率。 高性能优化:采用路由懒加载、组件懒加载、虚拟滚动等技术,优化页面加载速度和渲染性能;基于Vite实现按需构建和热模块替换(HMR)。 多环境适配:通过环境变量实现开发/生产环境隔离,适配浏览器、Electron、云端等多种运行环境,保证交互体验一致性。 可扩展性:按业务模块划分目录结构,新增业务功能只需新增对应模块目录,AI服务商、视频生成参数等配置支持动态修改,无需重构代码。 二、核心技术栈体系 Toonflow Web 采用当下主流的Vue 3生态技术栈,结合TypeScript实现静态类型安全,搭配高性能构建工具、多套UI组件库和实用工具库,兼顾开发效率、运行性能和交互体验。技术栈按功能划分为七大模块,具体如下: 技术分类 核心技术选型 技术用途 核心框架 Vue 3.5+(组合式API)、TypeScript 5.6+ 前端核心渲染框架,组合式API实现逻辑复用;TypeScript保证代码类型安全和可维护性 构建工具 Vite 5.4+ 极速冷启动、热模块替换、按需构建,提升开发效率和打包性能 UI组件库 Ant Design Vue 4.2+、Element Plus 2.13+ 快速搭建前端界面,提供丰富的基础UI组件和业务组件,兼顾美观与交互 表格组件 VXE Table 4.17+ 高性能表格组件,支持虚拟滚动、多列排序、筛选,适配大数据列表展示场景 状态管理 Pinia 2.2+(搭配持久化插件) 替代Vuex,实现状态集中管理、跨组件共享,支持本地持久化,按业务域拆分Store 路由管理 Vue Router 4.4+ 实现页面跳转、路由守卫、路由懒加载、嵌套路由,支持精细化权限控制 网络请求 Axios、WebSocket Axios封装HTTP请求,实现拦截与异常处理;WebSocket实现与后端实时通信 实用工具库 VueUse、Day.js、Mammoth VueUse提供组合式工具集;Day.js处理时间格式化;Mammoth实现Word文档解析 代码规范 ESLint、Prettier ESLint检查代码语法错误;Prettier统一代码格式化风格,保证团队代码一致性 三、核心模块源码级解析 Toonflow Web 按技术分层 + 业务功能划分核心模块,每个模块对应独立的目录结构,模块间通过标准化方式交互,以下为各核心模块的详细源码解析。 3.1 工程配置模块(根目录配置文件) 负责前端项目的全量工程化配置,是项目启动、开发、构建、部署的基础,核心配置文件按功能划分,支持多环境切换和个性化定制。 3.1.1 核心配置文件及功能 vite.config.ts:Vite核心构建配置文件,配置项目根目录、开发端口、接口代理、路径别名、构建优化、插件等核心参数,支持根据运行环境动态加载配置。 import { defineConfig, loadEnv }…
-
Toonflow 系统架构文档 – 1.0.5版本源码级解析
Toonflow 系统架构文档(1.0.5版本,源码级解析) 文档对应项目仓库:https://gitee.com/HBAI-Ltd/Toonflow-app Toonflow 是基于 AGPL-3.0 协议开源的 AI 短剧工厂工具,核心定位为“小说文本到短剧视频全流程自动化创作平台”。本文档将从系统架构分层、核心模块源码解析、模块交互逻辑、依赖组件、源码结构细节五个维度,进行源码级别的全面拆解,清晰呈现系统设计思路与实现逻辑,为开发者二次开发、问题排查、功能定制提供完整架构参考。 一、系统整体架构概述 Toonflow 采用“前后端分离 + 分层架构 + 微服务思想(模块化解耦)”设计模式,整体分为 5 大分层,各分层职责清晰、依赖明确,通过接口标准化实现通信,同时基于 Node.js + TypeScript 构建后端核心,Electron 实现桌面端打包,前端采用 Vue 技术栈(单独托管于 Toonflow-web 仓库),最终实现“AI 能力集成 + 业务逻辑处理 + 可视化操作 + 多端部署”的完整闭环。 1.1 整体架构分层(从下到上) 基础设施层:负责系统运行环境、依赖管理、配置加载、日志收集、文件存储,是整个系统的运行基石,对应源码中 config、utils、logs、uploads 等目录。 AI 能力集成层:核心负责对接外部 AI 服务(大语言模型、视频生成、图片生成),封装 AI 调用逻辑、请求重试、异常处理,对应源码中 agents 目录及相关工具函数。 核心业务逻辑层:系统核心,实现短剧创作全流程业务逻辑(小说解析、角色生成、剧本生成、分镜制作、视频合成),对应源码中 src 下的 routes、services 等目录。 接口适配层:负责前后端通信、请求校验、响应格式化、权限控制,将业务逻辑层的功能封装为标准化接口,供前端调用,对应源码中 routes 目录下的路由定义、middleware 中间件。 前端交互层:单独托管于 Toonflow-web 仓库,负责用户可视化操作、数据展示、交互反馈,通过 HTTP 接口与后端通信,最终打包后集成到后端 scripts/web 目录,实现桌面端/云端的可视化访问。 1.2 架构设计核心原则 解耦性:通过模块化拆分,将 AI 调用、业务逻辑、接口适配、基础设施分离,降低模块间依赖,便于单独修改和扩展(如替换 AI 服务提供商、新增业务功能)。 可扩展性:预留 AI 服务接口适配层,支持新增不同的 AI 模型(如替换视频生成模型、新增语音合成模型);业务逻辑层采用接口化设计,便于新增业务流程。 易用性:后端提供标准化接口,前端聚焦可视化操作,同时支持本机桌面部署和云端部署,适配不同用户场景(普通用户、开发者、企业用户)。 可维护性:采用 TypeScript 静态类型检查,规范源码编写;日志、配置、工具函数统一管理,源码结构清晰,便于问题排查和后期维护。 二、核心模块源码级解析(按分层展开) 本节将逐一分层、逐模块拆解源码,明确每个模块的核心文件、核心函数、功能实现逻辑,结合源码片段说明关键实现细节,确保解析到源码级粒度。 2.1 基础设施层(源码解析) 基础设施层是系统运行的基础,负责处理系统通用能力,不涉及具体业务逻辑,核心模块包括:配置管理模块、工具函数模块、文件存储模块、日志模块、依赖管理模块。 2.1.1 配置管理模块(config 目录) 核心文件 src/config/index.ts:配置入口文件,整合所有配置,提供统一的配置访问接口。 src/config/app.ts:应用基础配置(端口、运行环境、静态资源路径、文件存储路径等)。 src/config/ai.ts:AI 服务配置(AI 接口地址、请求超时时间、重试次数等,支持动态修改)。 src/config/log.ts:日志配置(日志存储路径、日志级别、日志格式等)。 核心功能与源码解析 功能:加载并统一管理系统所有配置,支持根据运行环境(dev/prod)切换配置,提供配置动态更新能力(如 AI 接口地址修改后无需重启服务)。 关键源码片段(src/config/index.ts): import appConfig from './app'; import aiConfig from './ai'; import logConfig from…