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 二进制分发目录。
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
"""模块:RollCall 课堂点名数据访问层
|
||
|
||
点名数据为「单行整体读写」结构(学生/题目/课堂记录三段 JSON),
|
||
数据访问收敛在此,视图层不直接操作 ORM。所有方法遵循帕斯卡命名法。
|
||
"""
|
||
|
||
from .models import RollCallData
|
||
|
||
|
||
class RollCallManager:
|
||
"""课堂点名数据管理器——按 DataKey 数据槽整体读写"""
|
||
|
||
@staticmethod
|
||
def GetData(DataKey):
|
||
"""读取数据槽(不存在返回 None)"""
|
||
return RollCallData.objects.filter(DataKey=DataKey).first()
|
||
|
||
@staticmethod
|
||
def SaveData(DataKey, Students, Questions, History):
|
||
"""整体覆盖保存数据槽,返回数据行实例"""
|
||
row, _ = RollCallData.objects.update_or_create(
|
||
DataKey=DataKey,
|
||
defaults={
|
||
'Students': Students,
|
||
'Questions': Questions,
|
||
'History': History,
|
||
},
|
||
)
|
||
return row
|
||
|
||
@staticmethod
|
||
def ClearData(DataKey):
|
||
"""清空数据槽,返回删除行数"""
|
||
deleted, _ = RollCallData.objects.filter(DataKey=DataKey).delete()
|
||
return deleted
|