python网络教育学院_基于Python技术的教务管理系统的研究与开发

戴雯惠

qkimagesjjgcjjgc201827jjgc201827100-8-l.jpg

qkimagesjjgcjjgc201827jjgc201827100-7-l.jpg

qkimagesjjgcjjgc201827jjgc201827100-6-l.jpg

摘要:随着教育体制的不断完善,学校教学规模日益强大,在校学生和教师的数量逐年增加,也增加了学校对教务管理的挑战。因此,有必要利用新技术开发适合现代需求的教务管理系统。本文从使用者的角度出发,使用当前流行的Python的Django框架,研究并开发一款高效的教务管理系统,满足师生的日常教学需求。

Abstract: With the continuous improvement of the educational system, the scale of school teaching is becoming more and more powerful, The number of students and teachers in school is increasing year by year. Increasing the school's challenge to the management of educational affairs. So, It is necessary to develop the educational administration system suitable for modern needs with new technology. This article starts from the user's point of view, using the current popular Django framework, research and develop an efficient educational administration system to meet the daily teaching needs of teachers and students.

关键词:教务管理系统;Python;MySQL数据库

Key words: educational administration management system;Python;MySQL Data Base

中图分类号:TP311 文献标识码:A 文章编号:1006-4311(2018)27-0237-03

0 引言

在新时代背景下,我国的综合国力日益强大,主要从人民的教育事业开始,让每个人都能接受良好的教育。在教育事业领导全国经济发展的同时,也加重了各大院校对教务管理的负担,不仅增加了教务管理人员的工作量,也增加了工作难度和复杂度。如果继续采用因循守旧,照搬照抄的人工管理教务信息模式,只会加大各大院校对教务管理信息的压力,所以一款高效的教务管理系统已经成为各大院校推进教育现代化的一个重要举措。

Internet的发展使我们的教育逐步走向现代化,在网络上进行信息管理与查询是当今教育中的一个热点。现在,教师和学生之间的信息传递非常方便,有很多不同的途径可以选择,但都存在安全性与便捷性方面的问题,数据难以整合决定了数据难以共享。在管理者建立的系统中,数据取决于管理者的认知,相反,真正的使用者不容易掌握。由于Internet具有影响力范围广,传递信息效率高,交互性强大优点,所以开发一个适合使用者的教务管理系统可以提高学校对教务信息的有效管理。本文论述的教务管理系统的主要目的就是取代传统的教务管理系统,简化教师和教务管理人员的工作量,将教务管理由线下放到线上,实现各大院校网络化的教务管理,使教务部门能更有效、更便捷地管理各院系的重大事件,使后台管理人员及时而充分地获取自己的工作日程、通知等,也方便学生能更高效的得到自己所需要的课程信息、成绩信息,同时方便教师完成各类信息的录入和统计。

1 系统功能需求分析

结合学院实际教务情况,教务管理系统的主要功能包括学生成绩和课表的查询;教师可以在系统中查看自身的课程分布、不同年级或者不同班级学生的基本信息以及学生相关专业的信息;后台管理员用用所有功能权限,包括教师信息、学生信息的添加、重置用户的注册及登录密码等。结合实际,本系统的实现功能如下:

①成绩录入:成绩信息是教务管理系统的核心要素之一,而成绩的特點又是多而杂,既有科目的分类、涉及学生数量大、又分成各个学期。因此,让教师的工作变得简单是本系统实现的首要目标。

②课程信息的录入:课程是教务管理系统中的重要部分。课表面向的是教师和学生。管理员通过教务管理系统,可以安排班级及教师的课表,方便师生查询。

③学院、专业及班级的添加管理:每个学校涉及多个子学院、子学院中包含多个专业,专业下面对应不同的班级,理清它们之间的关系,方便对他们进行添加、删除等各类操作。

④课表与成绩的查询:系统的用户包括教师和学生。教师可以在系统中查询课表;学生可以在系统中查询课表和成绩。

⑤权限管理:系统的用户包括管理员、教师和学生。在进入系统后,系统判断当前用户的身份,给别给予不同的权限。其系统功能示意图如图1所示。

2 开发环境分析

本系统基于Python3开发,首要任务是配置Python环境。Python的环境配置需要将Python的安装包安装完毕,并且将Python的安装路径添加到系统环境变量(Path)中。Python环境安装好以后,需要安装Django库,这在Python3下需要执行一句“pip install django”即可完成。

在开发IDE的选择上,本系统选择PyCharm,此IDE带有一系列可以帮助用户提高Python开发效率的功能。此外,PyCharm的一些高级功能也可以用于支持Django框架下的高效率开发。

在部署项目时,选择直接使用服务器进行项目部署,首先要在服务器端配置好数据库软件和Web服务器。数据等信息存放在MySQL数据库中。在配置Nginx时,可以方便的使用uWSGI和Nginx的配合,快速的完成服务器部署。这样,在正式部署项目时,又可以方便的使用uWSGI实现Django的wsgi协议,从而快速完成整个项目的部署。

3 数据库模型设计

教务管理系统中的角色分为教师和学生两种身份。需要在人员表中添加一个身份字段。在数据库模型中,一个班级对应本班级的学生,一个专业将分布不同的班级,一个学院又有多个专业。成绩表和学生表表示为一对一关系,由于一个学生在各自的专业里可以有很多门课的成绩, 一个学生可以对应成绩课表中的多条记录,而成绩表中的额一跳记录智能对应一个学生。由于课程分为考试课、考查课和实训课,它们对应的字段不一样,所以单独建表。数据表之间的联系,使用外键(Foreignkey)实现连接。教务管理系统的数据库模型图如图2所示。

4 系统功能模块设计与实现

4.1 登录模块

该模块功能实现用户在教务管理系统中登录的功能,主要核心任务是将访问者的用户名和密码与数据库中的用户名和密码进行遍历和比对,如果找到相符的就登录成功,反之则登录失败。登录页面需要一个登录表单,关键代码如下:

定义好表单,就可以调用表单数据,并在视图层进行登录业务逻辑的编写,核心代码如下:

定义登陆页面视图层函数,判断是否接受POST信息,如果没有,则直接将定义好的表单类发送到模板层,并在模板层中渲染表单元素。如果接收到POST数据,表明有用户正在试图登录,首先读取POST数据,并尝试验证能否得到一个用户对象,如果得不到则表示登录失败,若得到的user不为None,则登录成功,并跳转至“/info”页面。其功能界面如图3所示。

4.2 登录状态权限控制

教务管理系统的用户由学生、教师和管理员,即为多种用户,必须考虑登录状态问题,登录與否分别对应不同的权限。权限控制的第一步是判断是否登录并返回不同的权限页面,这是全局的,所以利用Django的中间件实现,关键代码如下:

这里定义一个DaasAuthenticationMiddleware类来控制登录后的行为,登录后半段当前用户是否灯具,如果登录则直接跳转到“/info”页面,即首页。如果发现未登录用户尝试访问“/info”页面,则直接跳转至登录页面。

4.3 成绩管理模块

在教务管理系统中,成绩是教务管理系统的核心数据之一。在本系统中,成绩类型分为三种,分别是考试课成绩、考查课成绩和实训课成绩,其中考查课成绩和考试课成绩在数据库中的字段一致,但期末总评成绩的测算方法不一致(考试课程的总评成绩=平时成绩*0.3+期末成绩*0.7,考查课程的总评成绩=平时成绩*0.4+期末成绩*0.6),实训课程需要一个等第(rank)字段表示。因此,将三种不同类型的成绩表分别放在三张数据表中。每一条成绩的记录都和用户是一对一的关系,当需要查询某学生的考试课成绩信息时,只需要查询到考试课表中用户字段为这个学生的记录即可。

成绩的导入是教师需要完成的主要工作之一。本系统中采用一系列的下拉框,可以精确定位到哪个学院哪个专业哪门课程,这些操作通过AJAX异步加载完成,无需刷新整个页面。系统自动生成一个表单,将这个班级所有学生的姓名与学号填入表中。教师只需要输入对应分值,总评成绩由系统自动计算得出结果。教师在后台进行对学生成绩的添加,学生则可以登录系统查询自己的考试成绩。

4.4 课表查询模块

课表查询即为当前用户显示一周课程信息,也可以在课表右上角显示的下拉列表框中选择对应的学期以便查询该用户以往学期的课程信息。课表设计为一张HTML中的table表格。教务管理系统的课表查询页面如图4所示。

4.5 学院、专业、班级管理模块

教务管理系统中,学院、专业和班级的管理模块功能类似,主要实现记录的添加、修改和删除操作。界面分为3列,分别为学院、专业和班级,当选择学院以后,会分别在第二列和第三列自动显示当前学院开设的专业和班级,教务管理系统中的学院、专业和班级管理界面如图5所示。

5 总结

高校教务管理系统的根本目的是通过系统服务于广大教师和学生,为用户提供经过整合和加工的信息,并清晰的展现给用户。提高学校对教务管理效率,从而更好地促进开发者和使用者之间的交流。本文从教务管理系统的设计目标出发,详细阐述了使用Phthon和MySQL相结合的开发思路,均使用PyCharm工具进行代码编写,最大限度地提高了开发效率和代码质量,实现高校教务管理系统的主要功能。

参考文献:

[1]Swaroop,C.H. 简明Python教程[M].2005.

[2]Django documentation https://docs.djangoproject.com/en/1.10/.

[3]SegmentFault社区 https://segmentfault.com/.

[4]Magnus Lie Hetland. Python基础教程[M].人民邮电出版社,2010.

[5]Jeff Forcier,Paul Bissex. Django Web开发指南[M].机械工业出版社,2009.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学生成绩管理系统需求规格说明书 1. 引言 1.1 编写目的 在编写”学生成绩管理系统”软件之前,对同类型产品的市场进行了前期调查,与多位软件设计者和使用者进行了探讨和分析,之后又软件项目小组向系统分析人员与软件设计人员提出了这份需求规格说明书。该需求规格说明书学生成绩管理系统进行了全面细致的用户需求分析,明确所要开发的软件应具有的功能,性能与界面。该需求规格说明书供概要设计人员阅读。 1.2 项目背景 项目委托单位: 开发单位: 主管部门: 学生成绩管理系统v1.0是一个功能比较完善的数据管理软件,具有数据操作方便、高效、迅速等优点。该软件采用功能强大的数据库软件开发工具进行开发,可在应用范围较广的Windows系列等操作系统上应用。 1.3定义 SSMS: Student Score Management System,学生成绩管理系统 1.4 参考资料(略) 2. 任务概述 2.1 目标 2.1.1 “学生成绩管理系统”以用户为使用对象,相应的功能有如下方面: 1. 学生:可浏览大学四学年八个学期的德智体三方面的综合成绩及总综合成绩。 2. 教师:可查询某个学生的综合总成绩,可查询特定年级班级全部学生的综合成绩排名。 3. 管理员:录入学生德育方面的相关信息,并可更改数据库信息。 2.1.2 性能要求 1. 安全性:学生只可浏览自己个人的信息,教师不仅可浏览学生个人的信息也可浏览特定班级的全部信息。 2. 响应时间:浏览个人成绩页面需在5秒内完成。 浏览班级排名页面需在7秒内完成。 2.2 运行环境 Intel 486以上系列、AMD K6以上系列等PC台式和便携式计算机。 运行时占用内存:<=1MB。 所需要硬盘空间:<=5MB。 软件平台:中文 Windows 95/98/NT 4.0或更高版本 2.3 条件与限制 由于时间比较短,使用计算机不方便以及对于网络编程不熟悉,因此本学生成绩管理系统并没有提供数据的远程访问功能。对信息的保护手段仅限于设置用户级别,以及提供数据文件的备份,比较简单,安全性能有待进一步完善。 3数据描述 3.1 系统的ER图如下:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值