暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

用python写一个基于web的题库系统

语和言 2023-01-27
670

本文介绍了中国传媒大学本科课程《自然语言处理技术》的一次作业,作者李蔚。任务要求写一个基于web的题库建设系统,该系统允许从浏览器端上传题目并存入数据库,并且提供自动组卷的功能。


本次任务是一个更大任务的组成部分,更大的任务是做一个基于题库的重复题目判别系统。在题库建设中,不同的人录入的题目可能有重复或高度相似,这样的重复或高度相似题目在题库中显然需要删重。当题库容量非常大的时候,自动判断题目是否有重复就变得非常有必要。判断重复题目,其实是NLP领域的文本相似性判定的一个应用。


1

成果展示

本题库系统具体有登录、个人资料修改、上传试题、自动组卷等功能。个人信息可以查看和进行修改,题目上传分为选择、填空、简答、判断以及名词解释,并且可以在组卷功能中设置生成试卷中各个题型的数量。

登录页面

修改密码

录入题集

生成试卷

资料修改


2

使用说明

1.     安装好python,并且设置环境变量

2.     安装django和python-docx拓展


安装django,在cmd里输入

pip install -i https://pypi.douban.com/simple django

将django设置环境变量

详细可参考

https://blog.csdn.net/qq_44816302/article/details/120749662


安装python-docx拓展,在cmd里输入:pip install python-docx

详细可参考胡老师介绍的快速安装拓展库的方法:

如何快速安装Python扩展库



以上准备完成后,就可以成功运行我们的题库系统了


打开系统所在地址,在有manage.py的根目录下输入cmd

在命令指示符中输入python manage.py runserver

成功运行后会有得到浏览器地址http://127.0.0.1:8000/

在浏览器中输入即可访问


3

框架设计

web框架用的是django,它的工作机制我们用来自百度百科页面的一个截图来说明:


总体框架如图,参考了网络上的一个仓库系统:https://b23.tv/n6gfXK5,感谢原作者“就叫小王八儿”


manage.pydjango项目的主管或入口文件,django项目启动时也是通过该入口启动
setting.py
:全项目的配置文件,配置的参数作用范围是全局的(改动时需参考文献)
urls.py
:所有地址/url/http请求和视图逻辑层具体函数的关联,定义某个url应该打开的是哪个文件
migrations
文件夹:存放数据同步历史的地方、
admin.py
django自带后台数据库管理页面的控制
models.py
:设置数据库表和字段的文件
test.py
django用来进行单元测试的文件
view.py
:视图逻辑层 - 用来接收浏览器数据并清洗,整理后传递给业务层(若项目内没有新建业务层,则该文件默认用来接收前端数据并写后端代码)
业务层:写后端的具体代码
apps
:当django项目有很多个app时,在此设置app的参数,控制各app是否启用

一个完整网页= 后台数据+ html模板+ 静态资源(可用/可不用)
templates
html模板文件夹,static为静态资源文件夹


4

关键代码

数据连接到数据库

主页配置

自动组卷


5

数据演示

本次课程设计完成了用Python 语言编程实现了一个初步的题库系统,web框架用的是django,主要实现添加试题、用户注册、自动组卷等功能。未来可进一步优化扩充系统功能,为重复题目判别系统的研制提供重要的题库资源,我们用视频展示一下最终效果。

文章转载自语和言,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论