一个基于Django的博客项目,也可以当做一个文档管理网站使用,自带评论、定时任务等功能,界面简约而不简单
izone
一个以 Django 框架搭建的个人博客系统。
线上地址:https://tendcode.com/
技术栈
| 层级 | 技术 | |------|------| | 后端框架 | Django 2.2 + Python 3.9 | | 数据库 | MySQL(utf8mb4) | | 缓存 / 消息队列 | Redis | | 异步任务 | Celery 4.4(Worker + Beat) | | 搜索引擎 | Whoosh + Jieba 中文分词 + django-haystack | | 前端 | Bootstrap 4 + jQuery | | 容器化 | Docker + Gunicorn + Supervisord |
文档索引
| 文档 | 说明 | |------|------| | 产品需求规格说明书 | 产品需求,包含功能列表和非功能需求 | | 架构设计文档 | 技术选型、模块划分、部署架构 | | 数据库设计文档 | 实体定义、关系说明、设计决策 | | API 接口文档 | 各应用 JSON API 端点 |
功能
- Django 后台管理系统,方便管理文章、用户及其他动态内容
- 文章分类、标签、专题(Subject → Topic → Article)层级结构
- 全文搜索(Whoosh + Jieba 中文分词,实时索引更新)
- 文章评论系统(二级回复、微博表情、Markdown)、评论通知
- 用户认证(Django 用户系统 + OAuth 微博/GitHub 第三方登录)
- 浏览量统计(爬虫过滤、session 去重、每日快照)
- 友链管理(在线申请、定时自动校链)
- RSS 订阅、Sitemap 网站地图、百度 SEO 推送
- RESTful API(条件启用,DRF DefaultRouter)
- 在线工具(条件启用)、服务监控、导航网站、流程图
- 响应式设计(PC / iPad / 手机),暗色主题支持
- Redis 缓存系统,Celery 定时任务调度
快速开始
Docker 部署
# 构建镜像
docker build -t hopetree/izone:lts .
slim 镜像(国内构建)
docker build --build-arg pipindexurl=http://mirrors.aliyun.com/pypi/simple/ \
--build-arg piptrustedhost=mirrors.aliyun.com \
--build-arg debian_host=mirrors.ustc.edu.cn \
-f Dockerfile-slim -t hopetree/izone:lts .
运行(需要预先启动 MySQL 和 Redis)
docker run -d \
-e IZONEMYSQLHOST=mysql_host \
-e IZONEMYSQLPASSWORD=your_password \
-e IZONEREDISHOST=redis_host \
-p 8000:8000 \
hopetree/izone:lts
本地开发
# 安装依赖
python -m venv env
source env/bin/activate
pip install -r requirements.txt
数据库迁移
python manage.py migrate
创建管理员
python manage.py createsuperuser
构建搜索索引
python manage.py rebuild_index
启动开发服务器
python manage.py runserver
启动 Celery(可选,异步任务需要)
celery -A izone worker -l info
celery -A izone beat -l info
环境变量
关键配置通过环境变量注入,完整列表见 架构设计文档。
| 变量 | 说明 | 默认值 | |------|------|--------| | IZONE_DEBUG | 调试模式 | True | | IZONEMYSQLHOST | MySQL 主机 | 127.0.0.1 | | IZONEMYSQLPASSWORD | 数据库密码 | python | | IZONEREDISHOST | Redis 主机 | 127.0.0.1 | | IZONETOOLFLAG | 启用在线工具 | True | | IZONEAPIFLAG | 启用 REST API | False |
项目结构
izone/
├── izone/ # Django 项目配置(settings/urls/wsgi)
├── apps/ # 所有 Django 应用
│ ├── blog/ # 核心博客应用
│ ├── oauth/ # 自定义用户模型 + OAuth 认证
│ ├── comment/ # 评论与通知系统
│ ├── easytask/ # Celery 异步任务
│ ├── api/ # REST API(条件启用)
│ ├── tool/ # 在线工具(条件启用)
│ ├── monitor/ # 服务监控
│ └── ... # webstack, resume, flow, portinfo, rsshub
├── templates/ # 共享模板
├── utils/ # 共享工具(Markdown 扩展等)
├── docs/design/ # 设计文档
├── Dockerfile
└── manage.py
许可
MIT License ======= 一个以 Django 作为框架搭建的个人博客。
博客效果: https://tendcode.com/
功能介绍
- Django 自带的后台管理系统,方便对于文章、用户及其他动态内容的管理
- 文章分类、标签、浏览量统计以及规范的 SEO 设置
- 用户认证系统,在 Django 自带的用户系统的基础上扩展 Oauth 认证,支持微博、Github 等第三方认证
- 文章评论系统,炫酷的输入框特效,支持 markdown 语法,二级评论结构和回复功能
- 信息提醒功能,登录和退出提醒,收到评论和回复提醒,信息管理
- 强大的全文搜索功能,只需要输入关键词就能展现全站与之关联的文章
- RSS 博客订阅功能及规范的 Sitemap 网站地图
- 实用的在线工具
- 友情链接和推荐工具网站的展示
- 缓存系统,遵循缓存原则,加速网站打开速度
- RESTful API 风格的 API 接口
博客页面效果(响应式)
- PC 页面效果
- PC 暗色主题效果
- PC 文章详情页,左边显示专题目录,右边显示文章目录,支持代码高亮
- PC 专题页,按文章归类
- 云监控服务,提供服务器的监控能力,客户端提供 Golang 版本,也可以自行编写 Python 版本的客户端用来上报数据
- PC 友情链接页,定时任务自动校验网址有效性
- PC 在线工具,平台自带工具
- ipad 效果
- 手机效果
运行指导
- 由于本项目分为几个不同的分支,每个分支的功能是一样的,但是运行的方式不同,所以需要根据分支查看对应的运行wiki
- 指导 wiki:https://github.com/Hopetree/izone/wiki
- 部署指导完整步骤:https://tendcode.com/subject/article/izone-install-docs/