zoukankan      html  css  js  c++  java
  • 操作系统词汇在线测试平台的实现

    开发起因

    谢老师有一个操作系统测评软件,需要安装客户端,不太方便,于是前段时间突发奇想想做一个web版的,主要是熟悉一下如何用python开发网站。

    web版的有如下优点:

    • 不用安装任何客户端软件,打开浏览器就能在线测试
    • 数据库放在云端,增加安全性
    • 基于web,跨平台
    • 更方便地统计所有用户的成绩
    • 方便用户获取自己的排名

    需求分析

    需要实现的功能:

    前端:

        首页:选择题目难度
        测试页面:展示题目,提供输入框,显示剩余时间,时间到自动提交,防止复制,防止粘贴
        成绩及答案页面:显示得分,排名,以及错题的正确答案

    后台:

       数据库部分:题目入库,题目检索,获取答案,成绩入库,获取排名
       web页面部分:为测试页面提供题目,时间等数据,接收用户数据,判断用户答案是否正确,计算成绩,返回排名与正确答案,错误处理,纠错功能,自动删除输入空格,输入字母自动转大写

    实现方案:

    • 后台编程语言:python。因为python是一门全能语言,既能处理数据库应用,还能方便得处理事物联系,比如计算成绩。web模块也很强大
    • 前台实现:主要是html,通过css美化,用javascript来实现计时和自动提交动作。
    • web框架:web.py。这是一个轻量级的web框架,可以很方便地构建小型web服务器并对外提供服务,一个类就是一个页面,每个页面有POST和GET两种方法。可以很方便获取用户输入
    • 数据库:sqlite数据库,因为这个程序用到的数据很少,sqlite数据库采用单个文件来存放,管理方便,python自带其模块,使用也很简单,查询速度方面也是比较给力的。
    • 模板引擎:jinja2。jinja2模板可以很方便的嵌入到html中,还可以实现一些判断,循环等操作来动态生成html代码。

    具体实现

    首先是题目入库,连接数据库,建表,从文本文件读取题目数据写入数据库。当web服务器启动后,初始页一个静态页面,可以选择题目难度,通过GET方法告诉服务器题目难度,然后服务器从数据库里面随机选出6个题目,根据难度和空数确定时间,通过jinja2模板填充页面数据,并返回测试页面。测试者开始做题,时间到或者测试者手动提交都会将测试者的答案提交到服务器,然后服务器对答案依次进行判断,并统计正确个数和错误答案,根据正确个数确定成绩,在根据成绩获取在系统里面的排名,一并将上面的信息返回。后台自动保存用户的成绩信息。测试者可以选择再测一次或者重新选择题目难度。

    程序代码

    演示地址

    存在问题

    • 在成绩页面点击浏览器后退按钮页面不能刷新
    • 排名页面只给出排名第几,没有具体排名列表
    • 页面还需要进一步美化
    • 没有提供后台管理页面
    • 如果用户禁用javascript则不能正常计时和自动提交(后台可以检测出来)

    其他

    • 前台美工:zcz
    • 后台实现:ma6174

    博主ma6174对本博客文章(除转载的)享有版权,未经许可不得用于商业用途。转载请注明出处http://www.cnblogs.com/ma6174/

    对文章有啥看法或建议,可以评论或发电子邮件到ma6174@163.com


  • 相关阅读:
    系统UINavigationController使用相关参考
    iOS工程集成支付宝错误Undefined symbols for architecture armv7
    Xcode工程使用CocoaPods管理第三方库新建工程时出现错误
    Xcode报错:“Your build settings specify a provisioning profile with the UUID..... however, no such provisioning profile was found”
    iOS开发问题之Could not instantiate class named NSLayoutConstraint
    UICollectionView使用相关博文链接
    UIRefreshControl的使用
    iOS沙盒路径的查看和使用
    【汇总】涉及iOS&iPhone开发相关文章汇总
    【汇总】iOS开发及Xcode使用中遇到的一些报错问题汇总
  • 原文地址:https://www.cnblogs.com/ma6174/p/2822930.html
Copyright © 2011-2022 走看看