Main.py:WHITE_HOSTS 增 rollcall/viper/venom 主机,STATIC_SITES 增 rollcall/venom 静态根,静态站点路由下 /API/ 前缀请求转交 Django 处理。 gvsds:settings.py 注册 gvsds.apps.rollcall,urls.py 挂载 API/RollCall/;新增 rollcall 应用(模型/视图/路由/迁移 + RollCallManager 数据访问层)与 TempLate/rollcall 前端站点。 .gitignore:排除 Viper/Venom 前端工程与部署产物、TempLate/FTP 二进制分发目录。
28 lines
1.2 KiB
Python
28 lines
1.2 KiB
Python
"""RollCall 数据模型——课堂点名数据持久化(单表 JSON 整体存储)。
|
|
|
|
学生 / 题目 / 课堂记录以 JSON 数组整体存于一行(DataKey 数据槽),
|
|
与前端原始 localStorage 结构完全一致(students/questions/history),
|
|
GET 整体读取、POST 整体覆盖,保持前端最小改动。
|
|
"""
|
|
|
|
from django.db import models
|
|
|
|
|
|
class RollCallData(models.Model):
|
|
"""点名数据槽——一个 DataKey 对应一份完整点名数据(默认 main 单班)"""
|
|
|
|
DataKey = models.CharField(max_length=32, primary_key=True, default='main', db_column='DataKey', verbose_name='数据槽')
|
|
Students = models.JSONField(default=list, db_column='Students', verbose_name='学生列表')
|
|
Questions = models.JSONField(default=list, db_column='Questions', verbose_name='题库列表')
|
|
History = models.JSONField(default=list, db_column='History', verbose_name='课堂记录')
|
|
UpdatedAt = models.DateTimeField(auto_now=True, db_column='UpdatedAt', verbose_name='更新时间')
|
|
|
|
class Meta:
|
|
db_table = 'rollcall_data'
|
|
app_label = 'rollcall'
|
|
verbose_name = '点名数据'
|
|
verbose_name_plural = '点名数据'
|
|
|
|
def __str__(self):
|
|
return f'RollCallData[{self.DataKey}]'
|