首页 > 其他分享 >实训课程模块和系统设置模块

实训课程模块和系统设置模块

时间:2023-04-17 16:00:31浏览次数:38  
标签:表单 课程 实训 模块 设计 添加

实训课程模块和系统设置模块(2023-04-10)

考虑到实验中心会有老师组织实训活动比如:ACM集训、蓝桥杯集训、数学建模集训等非教务系统导出的课程,需要实现实训课程模块,主要包括实训课程列表展示模块(类似于实验课和上机课展示模块)、实训课程添加模块、实训课程修改模块、实训课程删除模块

同时,在实训课程添加模块中准备用表单来收集添加的课程信息,这个信息中包括一个上课周次,打算实现一个系统设置模块,用来设定本学期开始的第一天,在实训课程添加模块中输入上课日期之后,可以通过日期与系统设定的学期开始第一天来计算出添加课程的上课周次。

序号 任务 完成情况
1 实现系统设置模块
2 后端实训课程的url设计
3 后端实训课程的view设计
4 后端实训课程的serializer设计
5 前端界面设计(与实验课表风格一致)
6 前端添加和修改模块的表单设计
7 前端删除模块的设计(与课程调休模块的删除一致)

想法:

1、实现系统设置模块
  • models设计

系统设置模块是用来对全局进行设置的,比如设定本学期开学的第一天之后,也就是确定了第一周的开始,在系统中选择日期之后就可以计算出选择的日期是在第几周。

数据库中储存的字段设置为key-value,即储存系统设置中的key和对应的value

class SystemSettingModel(models.Model):
    key = models.CharField(max_length=100)
    value = models.CharField(max_length=100)
  • url设计
# 系统设置API
r'^v1/systemsetting/$'
  • view设计
class SystemSettingAPIView(APIView):
  • serializer设计
class SystemSettingSerializer(serializers.Serializer):
  • 前端设计

系统设置页面只需要一个页面即可,设计一个表单展示信息。

2、后端实训课程的url设计

实现实训课程模块。

  • 查询模块

即将数据库中类型为实训课的课程查找返回。

  • 添加模块

这边将实训课储存和实验课上机课一同储存在课程表中,也就是说,在实现添加页面的表单时,需要的字段也就有了。

上课时间、节次、教室号、课程名称、指导老师、学生专业、学生人数,这边的周次可以通过系统设定的开学时间计算出这里的上课时间是在第几周,还有是表中储存的课程名称有两个,一是课程名称、一个是章节名称,这边直接把表单中的课程名称储存到两个字段中,课程代码的值因为是实训课程,所以是没有课程代码的,这边储存为空,课程类型直接后台指定为实训课。

  • 删除模块

删除直接将该课的id通过url请求传到后端,后端经过逻辑判断之后将数据删除。

这边url的设计,考虑到需要查询添加和修改,而查询和添加不需要用到课程的id,删除和修改则需要通过课程id来确定需要操作的课程,所以这边设计两个url,将查询和添加的功能放在一起,删除和修改放在一起。

r'^v1/experimentalcenter/training/(?P<id>\d+)/course/(?P<cid>\d+)/$'
r'^v1/experimentalcenter/training/(?P<id>\d+)/course/$'

由于实训课展示也是要先展示实验中心,然后点击进入实验中心之后再进行增删改查操作,多以这里也必须增加实训课的实验中心页面展示url

r'^v1/experimentalcenter/training/(?P<id>\d+)/$'
r'^v1/experimentalcenter/training/$'
3、后端实训课程的view设计

实训课的view设计

class ExperimentalCenterTrainingCourseListAPIView(generics.ListCreateAPIView):
class ExperimentalCenterTrainingCourseRetriveAPIView(generics.RetrieveUpdateDestroyAPIView):

实训课实验中心页面view

class ExperimentalCenterTrainingListAPIView(generics.ListCreateAPIView):
class ExperimentalCenterTrainingRetrieveAPIView(generics.RetrieveAPIView):
4、后端实训课程的serializer设计

因为实训课实验中心展示页面需要展示实验中心的实训课数量,所以这边需要设计实验中心的serializer,直接继承最基本的实验中心serializer即可,重写to_representation()函数,把count变量更改为实训课数量即可。

class ExperimentalCenterTrainingSerializer(ExperimentalCenterSerializer):

实训课课程的serializer需要添加create、update两个函数的重写而实现数据的添加和更新,还需要添加一个数据验证函数validate


class CourseDetailSerializer(CourseSerializer):
class CourseListSerializer(CourseDetailSerializer):
def create(self, validated_data):
def update(self, instance, validated_data):
def validate(self, data):
5、前端界面设计(与实验课表风格一致)

在左边的菜单导航栏中添加实训课表按钮,点击进入之后跳转到两个实验中心页面,只不过实验中心后面显示的课程数量为实验中心实训课的数量,点击查看即可进入实验中心,看到实训课表的List,这边与实验课和上机课有点不同,列表展示的信息是课程的详细信息,同样也有添加模块和修改模块,点击添加数据跳转到添加模块的表单,点击编辑跳转到课程信息编辑修改的表单,同时也有删除模块,点击删除,确定之后会像后端发起请求删除该ID的数据。

6、前端添加和修改模块的表单设计

添加模块和修改模块的表单设计是一致的,只不过添加模块表单中没有初始数据,而修改模块需要把课程的数据填充到表单中。

根据对老师添加课程的习惯,把必要的字段筛选出来设计到表单里,主要包含以下字段:

  • 活动时间、上课节次、实验室、指导老师、活动名称、学生专业、学生人数

确定这些必要字段之后,设计活动时间为一个日期选择框,节次为一个下拉选择框,学生人数为一个数字框,其他均设计为文本输入框。

7、前端删除模块的设计(与课程调休模块的删除一致)

删除模块设计一个确定操作,以防止用户误触,当点击删除时需要在弹出框中点击确定删除才会像后端请求完成删除操作。

标签:表单,课程,实训,模块,设计,添加
From: https://www.cnblogs.com/hhhhuaz/p/17326118.html

相关文章

  • Simulation-热换器热交换仿真分析在线课程预约
    SOLIDWORKSFlowSimulation允许产品工程师访问强大的CFD(计算流体力学)功能,从而帮助他们加快产品创新。FlowSimulation除了解决常规的流体问题(速度、压力、流量等)外,非常常用的一个功能就是解决流体热问题,温度在流体力学方面扮演着非常重要的角色,而很多产品本身就是能过热流来工作......
  • SAP 官方的在线课程网站:Open SAP
    我从2007年大学毕业加入SAP成都研究院,在这个行业工作已经16年了。我第一次听说SAP这个公司的名称,还是SAP到大学开校园宣讲会的时候,所以我也是零基础SAP入门。我从一个SAP菜鸟开始的成长史,可以参考这篇文章:一个SAP开发工程师的成长史个人的感受是,如果英语的阅读能力......
  • [python] Python枚举模块enum总结
    枚举是一种数据类型,在编程中用于表示一组相关的常量。枚举中的每个常量都有一个名称和一个对应的值,可以用于增强代码的可读性和可维护性。在Python中,枚举是由enum模块提供的,而不是Python提供专用的枚举语法。关于enum模块介绍见:enum。如需详细了解Python的enum模块,参见文章:Python......
  • Python可以用在GUI的可视化动态统计图生成模块
    Python可以用在GUI的可视化动态统计图生成模块有以下几个:Matplotlib:[【1】(https://matplotlib.org/)]Matplotlib是Python下最为知名的绘图库,提供了多种绘图方式,可以在Python交互式环境中快速绘图,同时也支持导出为图片格式。Matplotlib还包括了一套完整的工具集,可以用于数据分......
  • Node.js的安装以及配置npm全局模块路径和缓存路径
    Node.js的安装官方链接:https://nodejs.org/en 安装过程不赘述,注意安装路径即可。完成安装后最好配置一下npm全局模块路径和缓存路径,因为默认的npm全局模块路径和缓存路径在C盘配置npm全局模块路径和缓存路径首先,在nodejs安装路径下创建两个文件夹,作为npm全局模块路径和缓存......
  • requests模块
    1、介绍requests是python用于处理http/https的一个第三方库,需要pip安装。2、request函数importrequestsres=requests.request(method='GET',url='https://www.baidu.com/');request是一个函数,method和url参数必须给定res的类型为<class‘requests.models.Response’>......
  • requests模块Request类
    1、介绍requests.request函数执行返回requests.Response类的对象。当然,其他请求函数执行返回也是如此。然后res.request可以调用获取该响应对象的请求对象,即requests.Request类的对象。如果没有重定向,此时的Request即基本是设置request请求函数的参数设置的。2、类和初始化cl......
  • requests模块Response类
    1、介绍requests.request函数执行的返回对象即requests.Response类的对象。当然,其他请求函数执行返回也是如此。2、类和初始化classResponse:__attrs__=["_content","status_code","headers","url","history&qu......
  • 汉源高科1分8口工业级485集线器8路16路中继器分线器485hub信号隔离器模块
    汉源高科1分8口工业级485集线器8路16路中继器分线器485hub信号隔离器模块......
  • Nginx之数据流代理stream模块简介和使用
    转自 http://t.csdn.cn/RV4Hi一、stream模块简介  stream模块一般用于TCP/UDP数据流的代理和负载均衡,通过stream模块我们可以代理转发tcp报文。ngx_stream_core_module模块从1.9.0版开始提供。默认情况下,此模块不是构建的,应该使用–withstream配置参数启用它,即我们需要使用.......