Files
web-danmu/.trae/documents/Django弹幕活动应用实现计划.md

226 lines
4.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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保护
## 部署考虑
* 静态文件和媒体文件的部署
* 数据库迁移
* 性能优化(如弹幕缓存)