本文最终实现一个Web在线考试管理系统,可作为Python Web,Django的练手项目,也可以作为计算机毕设参考项目。
源码获取方式:【Django】pythonweb学生信息及考试管理系统毕业设计源码-Python文档类资源-CSDN下载
目录
系统功能需求分析
在线考试管理系统,主要包含如下几个功能模块:
1、用户登录及:实现简单的登录及验证
2**、个人信息展示**:展示考生个人信息
3、考试管理:展示可以考试的试卷,考试及自动计算考试成绩。
4、考试成绩管理:展示考试结果
5、后台基础数据管理:试卷,试题,考生等信息更新维护。
系统设计及实现思路
系统设计包括三部分:数据库设计,功能函数视图设计,前端页面设计
1、数据库设计
根据我们的的系统需求分析,我们预计需要如下几个数据表:
- 学院表:Academy
- 专业表:Major
- 课程表:Course
- 学生表:Student
- 题库表:QuestionBank
- 试卷表:TestPaper
- 学生成绩表:Record
2、页面及功能设计
为了实现我们前面的功能模块我们设计如下几个功能页面:
1、登录页面:
其中需要登录,校验,登录后同时需要存储用户信息在Session中,以备登录后的页面使用。
2、首页(考试信息页):
页面需要显示当前用户可以参考的考试试卷信息,在此页面点击开始考试可以跳转到考试页面。
3、考试页面:
展示对应试卷的题目和选项信息,同时可以进行答题,交卷后可以自动计算考试分数并存入数据库。
4、成绩显示页面:
展示对应考试的考试结果
5、后台管理:
用于管理我们的专业,考生,试卷,题库等基础信息,为了快速实现系统我们将直接启用Django自带的Admin管理功能。
6、个人详情:
用于展示个人详情信息。
系统实现过程及源码
大致理清了我们需要实现的功能模块之后,我们开始撸代码
1 、开发环境搭建及技术选型
服务端:Python 3.8
Web框架:Django 3.2
数据库:MySQL mysql-8.0.13-winx64
开发工具IDE:Pycharm(社区版)
前端框架:Bootstrap 4
2、Django项目创建及数据库连接配置
1.在任意盘符文件夹下新建一个空白Pycharm项目文件夹比如:PycharmProjects
2.打开Pycharm,进入空白文件夹:PycharmProjects
3.通过Pycharm 的Windows 命令行输入界面输入创建Django项目的命令,创建一个新的项目: DjangoExam
django-admin startproject DjangoExam
3、 数据库创建和连接配置
Django 对各种数据库提供了很好的支持,包括:PostgreSQL、MySQL、SQLite、Oracle。
Django 为这些数据库提供了统一的调用API。
我们可以根据自己业务需求选择不同的数据库。
MySQL 是 Web 应用中最常用的数据库。
本文采用MySQL。
此步骤将数据库设置连接到自己的MySQL数据库,并完成数据库的创建.
数据库创建
Django只能操作到数据表级别,不能操作到数据库级别,所以需要手工创建一个数据库:djangoexam
我们可以通过命令行创建一个数据库:
1.进入mysql安装文件夹的bin 子文件夹目录:
比如:D:Program Filesmysql-8.0.13-winx64in
2.连接数据库:
mysql -u root -p Enter password:******
3.连接登录成功后通过命令创建一个数据库:djangoexam
CREATE DATABASE IF NOT EXISTS djangoexam DEFAULT CHARSET utf8;
或者通过SQLlog工具创建一个数据库: djangoexam
Django数据库连接配置
Django使用MySQL需要mysql 驱动,如果你没安装 mysql 驱动,可以执行以下命令安装:
pip install pymysql
安装好之后,进入DjangoExam 项目下的DjangoExam 文件夹,打开setting.py 文件,找到DATABASES配置项,修改DATABSES配置项为如下内容:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'djangoexam', # 数据库名称
'HOST': '127.0.0.1', # 数据库地址,本机 ip 地址 127.0.0.1
'PORT': 3306, # 端口
'USER': 'root', # 数据库用户名
'PASSWORD': '123456', # 数据库密码
}
}
然后使用 pymysql 模块连接 mysql 数据库:
在与 settings.py 同级目录下的 __init__.py 中引入模块和进行配置:
import pymysql
pymysql.install_as_MySQLdb()
至此,我们创建了一个Django项目DjangoExam用于我们后续的在线考试管理系统开发的程序编写。
同时为此项目创建了一个MySQL数据库:djangoexam用于我们程序开发过程中的数据存放和处理。
4、 功能模块详细开发
一个Django项目框架搭建起来后,我们所有对系统的前后台所有的程序开发都可以在这个项目中进行了,一个典型的Django项目模块功能的开发包括如下几个步骤:
- 创建app
- 注册app
- 定义模型
- 定义视图函数
- 配置访问路由URL
- 静态资源准备及配置
- 前端模板开发
- 测试及运行
创建APP
在Django中的一个app代表一个功能模块,Django 规定,如果要使用模型,必须要创建一个 app。
本来一般实际开发中方便管理一个功能模块需要单独新建一个app,我们为了快速开发,所有的功能和模型都在一个app中进行管理。
在命令行中输入python manage.py startapp exam指令,创建名为exam的app:
python manage.py startapp ex