项目技术栈与语言汇总

未分类 2026-08-13 58
预计阅读时间:9 分钟

统计口径:仅统计被 git 跟踪的源代码文件,已排除 node_modules/、collectedstatic/、静态生成产物、上传媒体文件、数据库文件(db.sqlite3)及动画/图片等二进制资源。数据采集时间 2026-08-13。

一、项目概览

「且听风吟 (Tazume Sans)」是一个基于 Django 5.2 的个人博客/作品集系统,后端为 Python,前端采用「Vite + Tailwind CSS + Alpine.js + HTMX」构建,无 Vue/React 等重型前端框架。集成了文章、相册、音乐、动漫/电影/人物收藏、地图打卡、Live2D 桌宠 AI、Steam 游戏展示、评论、OAuth 登录、微信机器人等大量功能。

技术栈主线:

Python (Django) ── 后端业务/模型/视图/API/Admin
   ├─ SQLite3 / MySQL        数据存储
   ├─ Whoosh / Elasticsearch 全文搜索
   ├─ Redis(可选)          缓存
   └─ 第三方 API             智谱AI / TMDB / Steam / 网易云 / 微信

前端(无框架)
   ├─ HTML(Django 模板 + Jinja2)   结构
   ├─ Tailwind CSS                    样式(亮色/暗色双主题)
   ├─ 原生 JS + Alpine.js + HTMX      交互
   ├─ pixi.js + pixi-live2d-display   Live2D 桌宠
   └─ Vite 6                          构建打包

部署:Docker / Docker Compose / K8s + Gunicorn + Gevent + Nginx

二、语言分类汇总与占比

2.1 语言代码量(核心可执行代码)

语言 行数 文件数 占比 用途
Python 22,189 191 51.8% Django 后端全部业务逻辑
HTML(Django 模板) 7,932 63 18.5% 页面结构、模板渲染
JavaScript 7,881 35 18.4% 前端交互、Live2D、构建配置
CSS 4,811 — 11.2% 样式(含 Tailwind 源样式)
合计 42,813 — 100% —

2.2 配置 / 部署文件

类型 行数 用途
YAML / YML 2,011 Docker Compose、K8s 部署清单、CI(GitHub Actions / Codecov)
Shell 39 容器入口脚本(deploy/entrypoint.sh)
JSON(配置类) ~200 package.json、package-lock.json 等构建配置
Nginx conf 少量 反向代理 / 静态资源配置

2.3 文档 / 数据 / 资源(非代码)

类型 行数/数量 说明
Markdown 文档 ~8,000 行 / 25 文件 README、docs、笔记
PO / MO 翻译 ~2,000 行 i18n(英/简中/繁中)
JSON 数据 大量 动漫资源 info.json、Live2D 模型 *.model3.json 等静态数据
图片 / 媒体 大量 封面、头像、背景、Live2D 模型文件

三、技术栈明细、学习成本与重要性

难度:低(数天入门)/ 中(数周掌握)/ 高(需系统学习) 重要性:P0 核心必需 / P1 重要 / P2 可选或增强

3.1 后端(Python 生态)

技术 用途 难度 学习成本 重要性
Python 3.11 主力语言,全部后端 低 1~2 周 P0
Django 5.2 Web 框架(ORM/MVC/Admin/Auth/模板) 中 2~4 周 P0
django-mdeditor Markdown 编辑器(后台编辑文章) 低 半天 P1
django-haystack 统一搜索接口 中 2~3 天 P1
django-compressor 静态资源压缩合并 低 半天 P1
pyecharts / django-echarts 数据图表渲染 低 1~2 天 P2
Pygments 代码高亮 低 半天 P1
Pillow 图片处理(缩略图/水印) 低 1~2 天 P1
bleach + beautifulsoup4 HTML 清洗与解析 低 1 天 P1
WeRoBot 微信公众号机器人 中 2~3 天 P2
requests HTTP 客户端(调第三方 API) 低 半天 P1

3.2 数据存储 / 搜索 / 缓存

技术 用途 难度 学习成本 重要性
SQLite3 默认数据库(开箱即用) 低 无需额外学习 P0
MySQL 生产数据库(mysqlclient) 中 1~2 周(SQL 基础) P1
Whoosh 默认全文搜索引擎(纯 Python) 低 1 天 P1
Elasticsearch 生产搜索引擎(可选) 高 2~4 周 P2
Redis 缓存后端(可选) 中 1~2 周 P2
jieba 中文分词(搜索) 低 1 天 P1

3.3 前端

技术 用途 难度 学习成本 重要性
HTML / Django 模板 页面结构 低 1 周 P0
JavaScript(原生) 前端交互逻辑(frontend/src/) 中 2~4 周 P0
Tailwind CSS 3 原子化样式,亮/暗双主题 中 1~2 周 P0
Alpine.js 3 轻量交互(下拉/弹窗/切换) 低 2~3 天 P1
HTMX 局部刷新、无整页跳转 低 2~3 天 P1
Vite 6 前端构建打包(+ HMR 开发服务器) 低 1~2 天 P0
pixi.js + pixi-live2d-display Live2D 桌宠渲染 中 1~2 周 P2
sakura-js 樱花飘落动效 低 半天 P2

3.4 AI / 第三方服务

技术 用途 难度 学习成本 重要性
OpenAI SDK 调用大模型(智谱 glm-4-flash 兼容接口) 低 1~2 天 P1
智谱 API 桌宠对话、人物/艺术画自动生成 低 1 天 P1
TMDB API 电影数据导入 低 1 天 P2
Steam Web API 游戏列表/时长展示 低 1 天 P2
网易云音乐 API(Node) 音乐导入/流媒体(NeteaseCloudMusicApi/) 中 1 周 P2
OwnTracks GPS 轨迹上报 低 1 天 P2
OAuth(微博/Google/GitHub/Facebook/QQ) 第三方登录 中 2~3 天 P1

3.5 部署 / 运维

技术 用途 难度 学习成本 重要性
Docker 镜像构建(多阶段:Node 构建 + Python 运行) 中 1~2 周 P1
Docker Compose 本地/单机编排 低 2~3 天 P1
Kubernetes 生产编排(deploy/ 清单) 高 1~2 月 P2
Gunicorn + Gevent WSGI 服务器(并发) 低 1 天 P1
Nginx 反向代理 / 静态资源 中 1 周 P1
GitHub Actions / Codecov CI 与覆盖率 低 1~2 天 P2

四、学习路径建议(按投入产出排序)

第一优先级(跑通项目必需,P0)

  1. Python + Django 基础(ORM、视图、模板、Admin、Auth)——项目 51.8% 的代码,一切业务核心。
  2. HTML + Tailwind CSS——理解页面结构与会双主题(亮/暗)样式组织方式。
  3. 原生 JavaScript + Vite——理解 frontend/src/ 的模块化与构建流程。

第二优先级(日常开发高频,P1)

  1. Alpine.js + HTMX——项目大量交互与局部刷新都靠它们,语法简单、上手快。
  2. SQL(MySQL)+ 全文搜索(Whoosh/Haystack)。
  3. Docker + Docker Compose + Nginx——本地部署与线上环境一致。

第三优先级(按需学习,P2)

  1. Elasticsearch、Redis——生产环境规模化后再补。
  2. pixi.js / Live2D——仅当需要改桌宠相关功能。
  3. Kubernetes——仅当需要自建生产集群。
  4. 各第三方 API 集成——用到哪个模块学哪个,接口文档 + requests 即可。

五、结论

  • 主语言是 Python(Django),占代码量一半以上,是理解与维护这个项目的核心。
  • 前端是「模板 + 原生 JS + Tailwind + Alpine/HTMX」的轻量组合,没有引入 React/Vue,学习成本显著低于现代 SPA 栈,但需要理解 Django 模板与 JS 模块之间的协作方式。
  • 大量第三方服务(AI、电影、音乐、地图、微信、OAuth)均独立可插拔,未配置环境变量时自动跳过,可按需逐个学习,不必一次掌握全部。
  • 若目标是「能维护/二次开发」,最低门槛为 Python + Django + HTML + Tailwind + 基础 JS;若要完整部署上线,需再补 Docker/Nginx/MySQL。

本文由 tazume-sans 原创,转载请注明出处。

相关推荐