一个基于 Django + DRF + 微信小程序 的现代化轻博客平台,集成:
- 微信小程序登录
- JWT 鉴权体系
- 游客账号系统
- 微信绑定 / 账号合并
- AI 内容审核
- Web 前端
- Redis 缓存
- Docker 全容器化部署
- Nginx + uWSGI 生产环境
项目目标不仅是博客系统,而是逐步演进为:
AI 驱动的轻内容社区平台
┌────────────────────┐
│ 微信小程序端 │
└─────────┬──────────┘
│
┌─────────▼──────────┐
│ Web 前端(Vue) │
└─────────┬──────────┘
│
┌─────────▼──────────┐
│ Django + DRF API │
└─────────┬──────────┘
│
┌──────────────────┼──────────────────┐
│ │ │
┌───────▼────────┐ ┌───────▼────────┐ ┌──────▼──────┐
│ MySQL │ │ Redis │ │ AI审核服务 │
└────────────────┘ └────────────────┘ └─────────────┘
│
┌─────────▼──────────┐
│ Docker Compose │
└─────────┬──────────┘
│
┌─────────▼──────────┐
│ Nginx + uWSGI │
└────────────────────┘
| 技术 | 用途 |
|---|---|
| Python 3 | 核心开发语言 |
| Django | Web 框架 |
| Django REST Framework | REST API |
| SimpleJWT | JWT 登录鉴权 |
| MySQL | 主数据库 |
| Redis | 缓存 / 状态存储 |
| Pillow | 图片处理 |
| uWSGI | Python 服务部署 |
| Nginx | 反向代理 |
| Docker | 容器化 |
| Docker Compose | 多容器编排 |
| 技术 | 用途 |
|---|---|
| 微信小程序原生开发 | 小程序前端 |
| WXML | 页面结构 |
| WXSS | 页面样式 |
| JavaScript | 页面逻辑 |
| wx.request | API 请求 |
| wx.login | 微信登录 |
| 技术 | 用途 |
|---|---|
| Vue | Web 前端 |
| Axios | HTTP 请求 |
| Vue Router | 路由 |
| Pinia / Vue 状态管理 | 全局状态 |
| Vite | 前端构建 |
项目已经完成 AI 审核系统:
| 功能 | 描述 |
|---|---|
| AI 内容审核 | 自动检测违规内容 |
| AI 文本过滤 | 敏感内容识别 |
| AI 审核状态流转 | 自动审核通过/驳回 |
支持:
- DeepSeek API
- OpenAI Compatible API
- 自部署 LLM
- 后续接入 Ollama
通过:
wx.login()获取:
code → Django → 微信服务器 → openid
实现微信用户自动登录。
首次微信登录:
- 自动创建游客账号
- 自动绑定 openid
- 不强制手机号注册
用户后续可:
- 补全手机号
- 补全邮箱
- 设置密码
- 转正式账号
支持:
- 微信绑定已有账号
- 游客账号合并正式账号
- OpenID 转移
- JWT 重签发
核心逻辑:
guest_user.delete()
user.openid = openid并重新生成:
access token
refresh token
实现真正意义上的:
微信身份迁移
完整实现:
- Access Token
- Refresh Token
- 自动续签
- 自动重试请求
- 并发刷新队列
前端统一封装:
request(options)自动:
- 检测 401
- 调用 refresh
- 更新 access
- 重试失败请求
并通过:
requestsQueue解决并发刷新问题。
项目已接入 Redis:
支持:
- 用户状态缓存
- Token 辅助管理
- 接口缓存
- 高并发优化
后续可扩展:
- 热门文章缓存
- 点赞缓存
- 评论缓存
- 排行榜
支持:
- 用户头像
- 个性签名
- 邮箱展示
- 手机号展示
- 账号安全
- 修改密码
- 修改邮箱
- 修改手机号
- 微信解绑
- 注销账号
- 发布文章
- 编辑文章
- 删除文章
- 图片上传
- 分类系统
- 标签系统
文章状态:
draft
pending
published
rejected支持:
- 草稿
- 审核中
- 已发布
- 驳回
用户发布文章:
提交 → AI审核 → 自动状态变更
实现内容安全控制。
项目完全基于 Docker 部署。
包含:
- Django
- MySQL
- Redis
- Nginx
- uWSGI
Nginx
↓
uWSGI
↓
Django
↓
MySQL / Redis
支持:
- HTTPS
- 静态资源代理
- Media 文件代理
- API 反向代理
统一返回格式:
{
"code": 200,
"msg": "success",
"data": {}
}本地缓存:
access
refresh
user_id
is_guest
is_completed
userInfo通过:
getApp().globalData统一维护:
- 登录状态
- 用户信息
- Token 状态
不仅仅是微信登录,而是:
微信游客 → 正式账号 → 账号合并
完整生命周期。
实现:
- 自动刷新
- 请求队列
- 并发控制
- Token 续签
不是简单 Demo 级登录。
已真正落地:
AI 自动审核内容
属于 AI 内容平台核心能力。
具备:
- 高并发扩展能力
- 热数据缓存能力
- 用户状态缓存能力
整个项目:
开发环境 → 生产环境
全部容器化。
lightblog/
├── api_user/
├── api_blog/
├── utils/
├── nginx/
├── media/
├── static/
├── web/
├── miniapp/
├── docker-compose.yml
├── requirements.txt
└── manage.py
git clone your_repo_urldocker-compose up -d --builddocker-compose exec web python manage.py migratedocker-compose exec web python manage.py createsuperuser修改:
utils/request.js中的:
const BASE_URL = '你的后端地址/api'npm install
npm run dev- 微信登录
- JWT 鉴权
- 游客体系
- 账号合并
- Redis 缓存
- AI 审核
- Web 前端
- Docker 部署
- 评论系统
- 消息通知
- AI 摘要
- AI 标签推荐
- Elasticsearch 搜索
- 推荐算法
该项目并不是简单博客系统,而是:
面向 AI 内容社区方向演进的轻内容平台。
个人全栈开发项目。
涵盖:
- 后端架构
- 微信生态
- JWT 鉴权
- AI 接入
- Docker 部署
- Redis 缓存
- Web + 小程序双端开发
MIT License