Django之在线考试与自动评分

来自CloudWiki
跳转至: 导航搜索

技术要点

1)通过GET方式提交参数;

2)随机抽题;

3)客观题自动评分。

实施步骤

增加数据模型

1、修改apps\questions文件夹中的models.py文件,增加Test模型。

class Test(models.Model):
    id = models.AutoField(primary_key=True)
    questionID = models.IntegerField('题目编号')
    account = models.CharField('学生账号',max_length=50)
    testTime = models.DateTimeField('答题时间',auto_now=True)
    stuAnswer = models.CharField('学生答案',max_length=50)
    standardAnswer = models.CharField('标准答案',max_length=50,null=True)
    batch = models.IntegerField('考试批次')


2、执行命令,更新数据库。

PS D:\teaching\python\实训\onLinePythonLearning> python manage.py makemigrations
Migrations for 'questions3':
  questions3\migrations\0002_test.py
    - Create model Test
PS D:\teaching\python\实训\onLinePythonLearning> python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, questions3, sessions
Running migrations:
  Applying questions3.0002_test... OK

创建模板文件

3、在apps\questions\templates\questions文件夹中创建模板文件test.html。

<html>
<head>
	<meta charset="utf-8" />
	<title>在线测试</title>
</head>
<body>
	<form  method="get" action="/check/test/">
		{% if question %}
			<h3>【{{num}}】/100】 {{ question.questionContent }}</h3>
			<label>请输入答案: </label>
			<input  type="text" name="stuAnswer" required="required" />
			<br />
			<input type="text" style="display:none" name="id" value="{{question.id}}" />
			<input type="submit" value="下一题" />
		{% endif %}

	</form>

</body>
</html>


4.1、修改apps\questions文件夹中的views.py文件,增加下面的导入。


4.2、增加用来检查是否登录的修饰器。


4.3、然后增加用来考试的函数test()。


5、修改apps\questions文件夹中的urls.py文件,增加一条路由。


6.1、执行命令,运行网站,然后使用浏览器登录,进入考试页面。


6.2、考试结束,直接给出成绩。