网站说明

第一篇正式测试随想

Gary's Personal Website

这是一个围绕「内容表达 + 多媒体展示 + 互动体验」打造的个人网站。当前代码实现已经覆盖博客系统、画廊、观影记录、Spotify 音乐页、后台管理和一套完整的内容交互能力。

站点功能总览

  • 首页:展示个人形象与最近发布的随想内容。
  • 随想系统:完整的内容发布、展示、搜索、互动与版本管理。
  • 画廊系统:发布个人图片/作品,支持按创作日期与手动顺序混合排序。
  • 电影页面:聚合豆瓣观影数据并做后端缓存,前端读取缓存展示。
  • 音乐页面:对接 Spotify OAuth 与个人音乐数据。
  • 联系与简历页面:访客可留言联系,站内展示个人 CV。

详细功能

1. 随想(Thoughts)

  • 支持 HTML 与 Markdown 两种内容格式。
  • 支持封面图、标签、分类、草稿/发布状态。
  • 列表页支持分页、关键词搜索、按分类和标签筛选。
  • 详情页支持按 slug 访问、相关推荐和文章点赞。
  • 评论支持嵌套回复,并接入自动审核(approve/pending/reject)+ 人工复核。
  • 每次创建/编辑都会写入历史版本,支持查看、恢复和删除指定版本(保留至少一版)。

2. 评论与互动机制

  • 点赞基于匿名用户标识实现「点一次赞 / 再点取消」。
  • 评论提交后会经过离线规则审核,减少垃圾内容。
  • 后台可对评论进行人工二次判定,自动记录审核来源与时间。

3. 画廊(Gallery)

  • 前台仅展示 published 状态内容。
  • 每个条目支持标题、描述、标签、作品日期与手动排序。
  • 排序规则为:先手动排序项,再按作品日期倒序。

4. 电影(Movies)

  • 后端抓取豆瓣观影页并解析为结构化片单数据。
  • 抓取结果持久化到 MongoDB 缓存,前端读取缓存避免频繁请求上游。
  • 提供冷启动预热、定时刷新、跨进程锁租约与错误回填。
  • 图片代理支持域名白名单、可选签名校验、请求限流与缓存头。

5. 音乐(Spotify)

  • 支持 Spotify OAuth 登录与令牌持久化。
  • 提供个人资料、歌单、歌单曲目分页、最近播放、Top Artists、Top Tracks。
  • 支持单个艺术家详情聚合(基础信息 + 专辑 + 热门曲目)。
  • 对 Spotify API 错误做统一归一化,并带有限重试与退避策略。

技术栈(按当前实现)

  • 后端:Flask
  • 数据库:MongoDB(PyMongo)
  • 前端:Bootstrap、jQuery、Three.js
  • 内容处理:Markdown 渲染、HTML 清洗、图片处理
  • 外部能力:Spotify Web API、豆瓣页面抓取、邮件发送

评论 (0)

暂无评论,快来发表第一条评论吧!
发表评论
部分评论需要审核后才会显示,通过自动审核的评论会立即展示。

更多随想