预计阅读时间: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)
- Python + Django 基础(ORM、视图、模板、Admin、Auth)——项目 51.8% 的代码,一切业务核心。
- HTML + Tailwind CSS——理解页面结构与会双主题(亮/暗)样式组织方式。
- 原生 JavaScript + Vite——理解
frontend/src/的模块化与构建流程。
第二优先级(日常开发高频,P1)
- Alpine.js + HTMX——项目大量交互与局部刷新都靠它们,语法简单、上手快。
- SQL(MySQL)+ 全文搜索(Whoosh/Haystack)。
- Docker + Docker Compose + Nginx——本地部署与线上环境一致。
第三优先级(按需学习,P2)
- Elasticsearch、Redis——生产环境规模化后再补。
- pixi.js / Live2D——仅当需要改桌宠相关功能。
- Kubernetes——仅当需要自建生产集群。
- 各第三方 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 原创,转载请注明出处。