4.5 KiB
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 定义表单类(提交弹幕表单、活动设置表单、图片上传表单),替代模板原生表单,提升安全性和可维护性
templates/base.html 基础模板(统一页面布局、引入 Bootstrap/jQuery 公共资源,其他模板继承使用) templates/404.html 自定义 404 错误页面(提升用户体验) templates/500.html 自定义 500 错误页面(方便线上问题排查)
数据库设计
1. 活动设置模型(ActivitySetting)
-
背景图片(ImageField)
-
背景视频(FileField)
-
二维码图片(ImageField)
-
二维码位置(CharField:top-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. 媒体文件处理
-
图片压缩
-
视频格式验证
实现步骤
- 初始化Django项目
- 创建应用和基本模型
- 实现管理员后台配置
- 添加预设祝福语
- 实现扫码提交功能
- 实现主页面弹幕显示
- 实现管理员审核功能
- 实现设置页面
- 添加CSS样式和JavaScript交互
- 测试和优化
技术栈
-
Django 5.2.9
-
Bootstrap 5(前端框架)
-
jQuery(简化DOM操作)
-
SQLite(开发环境数据库)
安全考虑
-
图片上传验证和限制
-
管理员页面权限控制
-
防止XSS攻击
-
CSRF保护
部署考虑
-
静态文件和媒体文件的部署
-
数据库迁移
-
性能优化(如弹幕缓存)