完成一个基本的弹幕功能

This commit is contained in:
2025-12-31 09:01:57 +08:00
commit 81d0dd0f07
28 changed files with 2386 additions and 0 deletions

View File

@@ -0,0 +1,225 @@
# Django弹幕活动应用实现计划
## 项目结构
```
danmu_activity/
├── danmu_activity/ # 项目配置目录
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── activity/ # 主应用
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── models.py # 数据库模型
│ ├── views.py # 视图函数
│ ├── urls.py # 应用路由
│ ├── utils.py # 工具函数(如随机祝福语)
│ ├── static/ # 静态文件
│ │ ├── css/
│ │ ├── js/
│ │ └── media/ # 上传的媒体文件
│ └── templates/ # 模板文件
│ ├── activity/
│ └── admin/
├── manage.py
└── requirements.txt
```
activity/forms.py 定义表单类(提交弹幕表单、活动设置表单、图片上传表单),替代模板原生表单,提升安全性和可维护性
<br />
templates/base.html 基础模板(统一页面布局、引入 Bootstrap/jQuery 公共资源,其他模板继承使用)
templates/404.html 自定义 404 错误页面(提升用户体验)
templates/500.html 自定义 500 错误页面(方便线上问题排查)
## 数据库设计
### 1. 活动设置模型ActivitySetting
* 背景图片ImageField
* 背景视频FileField
* 二维码图片ImageField
* 二维码位置CharFieldtop-left, top-right, bottom-left, bottom-right, center
* 弹幕字体颜色CharField十六进制颜色码
* 弹幕背景颜色CharField十六进制颜色码
* 全局背景颜色CharField十六进制颜色码
### 2. 祝福语模型Blessing
* 内容TextField
### 3. 弹幕消息模型Danmu
* 姓名CharField
* 祝福语TextField
* 图片ImageField, 可选)
* 审核状态BooleanField默认False未审核
* 创建时间DateTimeField
## 视图设计
### 1. 主页面视图index
* 显示全屏背景(图片/视频)
* 显示二维码
* 实时显示已审核通过的弹幕
### 2. 扫码提交视图submit
* 显示表单姓名输入框、祝福语输入框带5条随机推荐、图片上传
* 提交后保存到数据库,等待审核
### 3. 管理员审核视图admin\_review
* 显示所有未审核的弹幕
* 支持通过/不通过审核
### 4. 设置视图setting
* 管理员可设置背景图片/视频、二维码图片、位置、弹幕颜色等
### 5. API视图
* 获取实时弹幕列表JSON格式
## 模板设计
### 1. 主页面模板index.html
* 全屏布局
* 背景图片/视频自适应
* 二维码定位显示
* 弹幕滚动效果
### 2. 提交表单模板submit.html
* 响应式设计,适配手机
* 表单验证
* 随机祝福语推荐
* 图片上传预览
### 3. 审核页面模板admin\_review\.html
* 表格展示待审核弹幕
* 操作按钮(通过/不通过)
* 批量审核功能
* 筛选功能
* 时间
### 4. 设置页面模板setting.html
* 表单设计,支持文件上传
* 实时预览效果
## 静态资源
### 1. CSS
* 全屏布局样式
* 弹幕滚动动画
* 响应式设计
### 2. JavaScript
* 实时获取弹幕Ajax轮询
* 弹幕动画效果,从右向左滑动,多行显示,
* 考虑到有些弹幕包含图片,计算图片的高度和宽度,不遮挡其它文字弹幕
* 表单验证和提交
### 3. 媒体文件
* 默认背景图片
* 默认二维码图片
* 上传的用户图片存储目录
## 工具函数
### 1. 随机祝福语生成
* 从数据库中随机获取5条祝福语
* 提供几百条预设祝福语
### 2. 媒体文件处理
* 图片压缩
* 视频格式验证
## 实现步骤
1. 初始化Django项目
2. 创建应用和基本模型
3. 实现管理员后台配置
4. 添加预设祝福语
5. 实现扫码提交功能
6. 实现主页面弹幕显示
7. 实现管理员审核功能
8. 实现设置页面
9. 添加CSS样式和JavaScript交互
10. 测试和优化
## 技术栈
* Django 5.2.9
* Bootstrap 5前端框架
* jQuery简化DOM操作
* SQLite开发环境数据库
## 安全考虑
* 图片上传验证和限制
* 管理员页面权限控制
* 防止XSS攻击
* CSRF保护
## 部署考虑
* 静态文件和媒体文件的部署
* 数据库迁移
* 性能优化(如弹幕缓存)