基于Django框架的网络选课管理系统

摘要:

本学期学习了python,迫切的需要一个项目去巩固学习到的知识,选择了用python语言,基于Django框架来开发一个WEB网站。最后经过考虑决定设计开发一个网络选课管理系统,提供给老师上传课程、管理课程信息,提供给学生进行网上选课。在进行了需求分析和系统的可行性分析之后,对系统中的管理员、教师模块部分、学生模块部分和数据库进行了概要和详细的设计。

1. 引言

1.1 项目目的

现在信息管理系统的开发, 是为满足我国现今大多学校对学生管理的信息化、网络化、可视化管理的强烈需求。通过本课题的研究,目的在于解决网络环境下选修课程过程中存在的典型问题,充分提高教务管理工作的质量与效率,对计算机应用技术尤其是网络技术的应用与研究起到积极的推动作用,从而全面提高选修课程的管理质量,使选课实施与管理更加科学化、规范化。

1.2 项目背景

随着学校的发展,学校的学生信息的存储量不断增加, 以前各自独立的系统远远不能满足学校管理的需要。 学生档案管理系统是一个教育单位不可缺少的部分, 它的内容对于学校的决策者和管理者来说都至关重要,所以学生档案管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案, 这种管理方
式存在着许多缺点 ,效率低、保密性差 ,另外时间一长 ,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。而使用计算机对学生档案信息进行管理 ,具有手工管理所无法比拟的优点。例如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、
成本低等。这些优点能够极大地提高学生档案管理的效率, 也是企业的科学化、正规化管理的重要途径。

2. 系统结构

2.1 整体架构

基于Django框架的网络选课管理系统

2.2 教师上传课程

基于Django框架的网络选课管理系统

2.2 学生选择课程

基于Django框架的网络选课管理系统

3. 系统实现

3.1 数据库设计

【用户数据库】:用于存储用户信息
图1 用户数据库
基于Django框架的网络选课管理系统

【课程板块数据库】:用于存储课程大板块,以及简介
图2 课程板块数据库

基于Django框架的网络选课管理系统
【课程信息数据库】:存放课程的具体信息,如上课地点、时间、搜课教师等信息
图3 课程信息数据库

基于Django框架的网络选课管理系统
【学生信息数据库】:存放学生的个人信息
图4 学生信息数据库

基于Django框架的网络选课管理系统
【选课记录数据库】:记录什么学生(学生id)选了什么课(课程id)
图5 选课记录数据库

基于Django框架的网络选课管理系统

3.2 代码实现

3.2.1 编程框架简介

Django框架的设计模式借鉴了MVC框架的思想,也是分成三部分,来降低各个部分之间的耦合性。Django框架的不同之处在于它拆分的三部分为:Model(模型)、Template(模板)和View(视图),也就是MTV框架。(框架图如下图1)

  • Model(模型):负责业务对象与数据库的对象(ORM)
  • Template(模版):负责如何把页面展示给用户
  • View(视图):负责业务逻辑,并在适当的时候调用Model和Template

图6 MTV框架

基于Django框架的网络选课管理系统

3.2.2 具体编程实现

了解了Django的框架之后,我们可以知道实际上与传统的MVC框架是极为相似的,那么我们要完成整个WEB的编程,到底要做什么?
1、 编写项目下的Model.py,创建数据库,并且设计数据库之间的关系,下图2创建了课程模块数据库,课程列表数据库,学生选课记录数据库,以及学生信息数据库。

图6 数据库创建
基于Django框架的网络选课管理系统
图7 数据库创建
基于Django框架的网络选课管理系统

2、 编写视图View.py(最核心的一部分,向上绑定页面数据,向下反馈数据库操作)
图8 视图类/函数编写
(主课程模块页面、老师管理课程页面、学生选课页面)
基于Django框架的网络选课管理系统

图9 视图类/函数编写(续)
(学生选课功能)
基于Django框架的网络选课管理系统
图10 视图类/函数编写(续)
(学生退课功能)
基于Django框架的网络选课管理系统

图11 视图类/函数编写(续)
(老师新上传课程、删除课程功能)
基于Django框架的网络选课管理系统

图12 视图类/函数编写(续)
(老师编辑课程信息功能)
基于Django框架的网络选课管理系统

图13 视图类/函数编写(续)
(学生注册后完善个人信息功能、更改个人信息功能)
基于Django框架的网络选课管理系统

3、 编写页面Templates(用H5+CSS+JS完成)
图14 前端页面编写
(页面太多,不一一展示,通过附件查看代码)
基于Django框架的网络选课管理系统

4、 设置路由表(什么路由可以访问什么页面),下图分为账户部分和选课系统部分路由。
图15 路由设置 (账户身份认证部分)
基于Django框架的网络选课管理系统

图16 路由设置 (选课页面部分)
基于Django框架的网络选课管理系统

4. 系统展示

4.1初始化

本软件WEB网页版系统,则用户无需安装相关环境,只需要保证有火狐或者谷歌浏览器等其他主流浏览器则可以对本系统进行使用。

4.2 注册、登陆

用户首次接触本系统需要进行注册与登陆

图17 注册界面
基于Django框架的网络选课管理系统
图18 完善个人信息的页面
基于Django框架的网络选课管理系统

图19 登陆界面
基于Django框架的网络选课管理系统

4.3 学生选课功能指引
图20 选课主页
基于Django框架的网络选课管理系统

图21 学生选课界面
【学生可以按选课与退课按钮进行选择自己的课程】
基于Django框架的网络选课管理系统

图22 查看课表界面
【选择完毕后查看个人课表】
基于Django框架的网络选课管理系统

基于Django框架的网络选课管理系统

4.4 教师管理课程功能引导

图23 以教师身份登陆
基于Django框架的网络选课管理系统

图24 进入课程管理主页
基于Django框架的网络选课管理系统

图25 教师选择一个课程板块进行上传具体的课程
基于Django框架的网络选课管理系统

【由上图可知,每个老师只可以操作自己上传的课程】

图26 新增课程功能
基于Django框架的网络选课管理系统
基于Django框架的网络选课管理系统

图27 新增课程功能效果
基于Django框架的网络选课管理系统

图28 修改课程信息
基于Django框架的网络选课管理系统
图29 修改课程信息效果
基于Django框架的网络选课管理系统

图30 删除课程,有弹窗,交互友好
基于Django框架的网络选课管理系统

图31 删除课程效果
基于Django框架的网络选课管理系统

5. 总结和展望

总的来说,本学期学习了python之后应用于Django框架下的WEB网站的搭建,算是巩固了python面向对象编程的技巧。而实际上python的功能远不止步于搭建一个简单的WEB网站,它可以用于编写爬虫程序,自动化脚本,机器学习的数据处理等等一系列强大的功能。这个学期从老师布置的实验,踏实地练习语法基础,再到网上看见的有趣的小项目也跟着练习应用技巧,让我不知不觉收获了许多可贵的经验。让我对使用python解决更多的问题有了信心。