[Python+Django]Web在线考试管理系统设计及代码实现本⽂最终实现⼀个Web在线考试管理系统,可作为Python Web,Django的练⼿项⽬,也可以作为计算机毕设参考项⽬。
源码获取⽅式:
⽬录
系统功能需求分析
在线考试管理系统,主要包含如下⼏个功能模块:
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 Files\mysql-8.0.13-winx64\bin
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.sql',    # 数据库引擎
'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 exam
注册APP
在 DjangoExam⽂件夹⽬录下的settings.py 中到INSTALLED_APPS配置项,将新创建的exam添加到项⽬的app列表,如下:
INSTALLED_APPS = [
'ib.admin',
'ib.auth',
'ttypes',
'ib.sessions',
'ssages',
'ib.staticfiles',
'exam', #添加此项
]
定义模型
我们之前创建了⼀个空⽩的数据库djangoexam,这⼀步我们通过Django的模型来完成数据库表的创建.
因为Django对模型和⽬标数据库之间有⾃⾝的映射规则,如果⾃⼰在数据库中创建数据表,可能不⼀定符合Django的建表规则,从⽽导致模型和⽬标数据库⽆法建⽴通信联系。
所以最好我们在Django项⽬中还是通过Django模型来创建对应数据库表
⼀个表对应⼀个模型,本步骤按照我们前⾯数据库设计需要设计7个模型:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。