首先,我做一个简短的介绍,我是一名汽车工程师 ,无论是机器还是计算机程序,我都喜欢学习和创造新事物。
我是一家汽车公司的技术培训师。 最近,我们在尼泊尔开设了一个新的服务培训中心,在培训我们的机械师之前,我们必须了解那里的技能水平,以便将他们隔离在不同的培训课程中。 因此,我们不得不在整个尼泊尔进行技能映射。
对整个国家的所有机械师进行考试都很艰苦,更难的是70-80%的机械师不懂英语或尼泊尔语的正确读写。
解决方案1:创建多项选择题集并将其分发给每个服务中心进行考试。
- 问题纸泄漏的可能性。 (解决方法,在检查时提供软副本)
- 延迟1或2个小时进行考试可能会导致问题泄漏(解决方法,将信任的监考人员发送到所有研讨会,但这会非常昂贵)。
- 如果他们不懂英语,那么技工将如何回答问题(解决方法,将所有不同类型的试卷转换为尼泊尔语,但这将需要时间,而且许多机械师也不会读尼泊尔语。)
- 如果不是几天,检查问题文件将需要几个小时。
所以最后我想进行在线考试,因为几乎每个机修工都拥有智能手机并可以使用它们。
有许多在线平台可以进行在线考试,所以这不是一个新主意,但是这些在线服务不适合它们,因为它们具有:
- 复杂的用户注册和登录系统,不适合我们的参与者。
- 他们没有为所有用户立即提供任何预注册的功能。
- 他们没有音频问题和选项功能。
因此,我希望由我自己制作的在线考试应用程序类型。
我已经学习Python大约一年了,而Django是快速部署我的想法的最佳选择。
我的Django应用程序有2个简单的模型,一个用于参与者,另一个用于存储问题。
类问题(models.Model):
“”“问题存储模型”“”
问题= models.CharField(max_length = 500)//问题
options = models.CharField(max_length = 1000)//所有四个选项
答案= models.CharField(max_length = 1)//正确的答案
category = models.CharField(max_length = 30)//问题类别
音频= models.CharField(max_length = 50)//问题定义__str __(自身)的音频:
返回self.questionclass参与者(models.Model):
名称= models.CharField(max_length = 100)//参与者名称
mobile = models.CharField(max_length = 15,unique = True)
位置= models.CharField(max_length = 100)//车间位置
experiance = models.IntegerField()//确定问题类别的表达式
标记= models.IntegerField(默认= 0)
start_time = models.DateTimeField(null = True)
onquestion = models.IntegerField(默认= 0)
category = models.IntegerField(默认= 0)
ans_list = models.CharField(max_length = 200)def __str __(self):
返回self.name
然后,我必须设计3个模板,即登录页面,考试页面和完成页面。






所有这些花了我3天的时间来创建。
使考试成为可能的主要事情是我为每个问题自动添加了音频,并且每个问题都会自动播放,尼泊尔语中的选项,我的同事在2天内记录了近200个问题的音频。
我在Excel工作表中拥有参与者和问题的所有详细信息,我编写了一个小的Python脚本来将数据从Excel工作表导入数据库。
我使用一个名为xlrd的python库从Excel工作表中读取数据。
来自.models import参与者,Questuons
导入xlrd //向数据库添加问题
def addques(request)://打开问题Excel工作表
BASE_DIR = os.path.dirname(os.path.abspath(__ file__))
wb = xlrd.open_workbook(os.path.join(BASE_DIR,'ques.xls'))//遍历范围为(0,4)的cat的所有4个问题集:
工作表= wb.sheet_by_index(cat)
对于范围(4,sheet.nrows)中的x:
ques = Questions()
qna = sheet.cell_value(rowx = x,colx = 1).split(sep ='\ n',maxsplit = 1)//第一行包含问题
ques.question = qna [0]
ques.options = qna [1]
ques.answer = sheet.cell_value(rowx = x,colx = 2)
ques.category =猫
audiocat = ['B','A','E','El']
ques.audio = audiocat [cat] + str(x)+'.m4a'
print('添加..'+ audiocat [cat] + str(x)+'问题')
ques.save()
返回render(request,'index.html')//将参与者添加到databasedef addmem(request):
BASE_DIR = os.path.dirname(os.path.abspath(__ file__))
wb = xlrd.open_workbook(os.path.join(BASE_DIR,'mem.xls'))
工作表= wb.sheet_by_index(0)
附加=''
对于范围(1,sheet.nrows)中的x:
参与者=参与者()
parti.name = sheet.cell_value(rowx = x,colx = 1)
parti.mobile = sheet.cell_value(rowx = x,colx = 4)
parti.location = sheet.cell_value(rowx = x,colx = 3)
parti.experiance = sheet.cell_value(rowx = x,colx = 7)
parti.category = sheet.cell_value(rowx = x,colx = 10)
parti.save()
返回HTTPResponse(请求,附加)
最后,我不得不编写一个视图来处理答案的提交和检查。
而且,有了Django和xlrd库以及堆栈溢出🙂,我就可以在一周内创建此应用。
接下来,我们创建演示视频和演示问题集,供机械师在出现考试之前进行练习。
我在Digital Ocean $ 10服务器上实现了该应用程序,并在1个小时内完成了全国的在线考试 。
这是我用很少的编程知识就能解决的许多问题之一,我想分享学习编程带来的积极影响。
这是我在互联网上的第一篇文章,希望你们喜欢..!