# 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. 媒体文件处理 * 图片压缩 * 视频格式验证 ## 实现步骤 1. 初始化Django项目 2. 创建应用和基本模型 3. 实现管理员后台配置 4. 添加预设祝福语 5. 实现扫码提交功能 6. 实现主页面弹幕显示 7. 实现管理员审核功能 8. 实现设置页面 9. 添加CSS样式和JavaScript交互 10. 测试和优化 ## 技术栈 * Django 5.2.9 * Bootstrap 5(前端框架) * jQuery(简化DOM操作) * SQLite(开发环境数据库) ## 安全考虑 * 图片上传验证和限制 * 管理员页面权限控制 * 防止XSS攻击 * CSRF保护 ## 部署考虑 * 静态文件和媒体文件的部署 * 数据库迁移 * 性能优化(如弹幕缓存)