MyBlog - 个人博客系统
一个基于 Django 框架开发的轻量级个人博客系统,提供完整的文章管理、用户认证和个性化设置功能。
功能特性
用户系统
- 用户注册与登录
- 邮箱验证激活
- 密码找回
- 个人资料编辑
- 头像上传
文章管理
- 文章发布、编辑、删除
- 分类管理
- 标签支持
- 富文本编辑器 (CKEditor 5)
- 文章归档
- 热门文章推荐
- 阅读量统计 (PV)
侧边栏功能
- 最新文章
- 热门文章
- 文章搜索
- 文章归档
- 分类展示
前端设计
- 基于 Bulma CSS 框架
- 响应式设计
- 现代简洁的 UI 风格
技术栈
- 后端: Django 4.x
- 前端: HTML5, CSS3, JavaScript
- UI 框架: Bulma
- 富文本编辑器: CKEditor 5
- 数据库: SQLite (默认) / MySQL / PostgreSQL
项目结构
myblog/
├── blog/ # 博客应用
│ ├── migrations/ # 数据库迁移
│ ├── static/ # 静态文件 (CKEditor5)
│ ├── templates/ # 博客模板
│ ├── templatetags/ # 自定义模板标签
│ ├── admin.py # Django admin 配置
│ ├── forms.py # 表单定义
│ ├── models.py # 数据模型
│ ├── urls.py # 路由配置
│ └── views.py # 视图函数
├── users/ # 用户应用
│ ├── migrations/
│ ├── static/ # 用户模块静态文件
│ ├── templates/ # 用户模板
│ ├── admin.py
│ ├── forms.py
│ ├── models.py
│ ├── signals.py # Django 信号
│ ├── urls.py
│ └── views.py
├── mysite/ # Django 项目配置
│ ├── settings.py
│ ├── urls.py
│ ├── wsgi.py
│ └── asgi.py
├── utils/ # 工具函数
│ ├── email_send.py # 邮件发送
│ └── upload.py # 文件上传
├── manage.py
└── requirements.txt安装部署
1. 克隆项目
git clone https://gitee.com/yodragon/myblog.git
cd myblog2. 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/Mac
# 或
venv\Scripts\activate # Windows3. 安装依赖
pip install -r requirements.txt4. 配置数据库
编辑 mysite/settings.py 中的数据库配置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}5. 初始化数据库
python manage.py migrate
python manage.py createsuperuser # 创建管理员账户6. 运行项目
python manage.py runserver访问 http://127.0.0.1:8000/ 进入博客首页。
主要页面
| 页面 | 路径 | 说明 |
| 首页 | / | 博客文章列表 |
| 文章详情 | /post/<id>/ | 文章详细内容 |
| 分类列表 | /category/<id>/ | 按分类查看文章 |
| 文章归档 | /archives/<year>/<month>/ | 按月份归档 |
| 搜索 | /search/ | 搜索文章 |
| 登录 | /users/login/ | 用户登录 |
| 注册 | /users/register/ | 用户注册 |
| 个人中心 | /users/profile/ | 用户个人资料 |
| 我的文章 | /blog/my_posts/ | 用户文章管理 |
| 发布文章 | /blog/add/ | 创建新文章 |
数据模型
Blog 应用
- Category: 文章分类
- Tag: 文章标签
- Post: 博客文章
- Sidebar: 侧边栏配置
Users 应用
- UserProfile: 用户扩展信息
- EmailVerifyRecord: 邮箱验证码记录
开发说明
添加新文章
- 登录用户账户
- 访问
/blog/add/ - 填写标题、选择分类、添加标签、编写内容
- 点击发布
自定义侧边栏
通过 Django Admin 后台可以管理侧边栏内容和热门文章推荐。