python智慧校园线上考试在线比赛答题系统平台源码redis

news2025/7/18 8:52:26

wx供重浩:创享日记
对话框发送:python考试
获取完整源码源文件+说明文档+配置教程等


在虚拟环境下输入命令“python manage.py runserver”启动项目,然后,访问“http://127.0.0.1:8000”进入网站首页,如图1所示。

在这里插入图片描述

注册用户
鼠标悬浮至顶部导航中的“登录”按钮时,单击“密码”登录,弹出登录框,如图2所示。如果没有账号,需要点击登录框中的“注册”按钮进行注册,如图3所示。

在这里插入图片描述
在注册页面中,需要填写真实可用的邮箱,注册成功后,需要进行邮箱验证,如图4所示。单击“发送邮件”按钮,提示发送信息,如图5所示。

在这里插入图片描述
查看邮箱,如图6所示。

在这里插入图片描述
由于我们在本地测试,不能直接单击邮箱验证链接,可以手动赋值链接,然后在链接地址前添加“http://127.0.0.1:8000”, 即完成的链接地址为:“http://127.0.0.1:8000/auth/email_notify?email=邮箱地址&sign=53ec094a-4acf-11e9-8b5b-b0d59d3cadab”。然后使用浏览器访问该地址即可完成验证并自动登录,如图7所示。

在这里插入图片描述
注册完用户后,即可参与答题,如选择热门比赛。点击一个比赛,即可进入该比赛信息页,如图8所示。

在这里插入图片描述
单击“开始挑战”按钮开始答题,如图9所示。单击“查看排行榜”按钮,即可查看排行榜。

在这里插入图片描述
在答题页面,单击“后退”按钮,返回上一题;单击“前进”按钮,进入下一题;单击“交卷”按钮,显示答题成绩,如图10所示。

在这里插入图片描述

注册机构
机构用户可以参与出题,用户需要先注册结构才能成为机构用户。单击顶部导航中的“成为机构”按钮,进入注册机构页面,如图11所示。在该页面中,邮箱填写用户注册网站时邮箱。

在这里插入图片描述
注册完成后,单击导航栏顶部的“快速出题”按钮,进入出题页面。如图12所示。

在这里插入图片描述
在快速出题页面,需要先来录制题库,然后再配置比赛。单击“开始录制”按钮,如图13所示。创建题库时,需要先下载题库模块,然后根据模板提示,创建自己的Excel题库。然后填写题库名称,选择题库类型,上传Excel文件,最后单击“开始录制”按钮,上传题库。

在这里插入图片描述
上传完题库以后,开始配置比赛。在快速出题页面,单击“配置比赛”超链接,进入配置比赛页面。配置比赛时,选择题库,填写配置信息。如果需要答题用户在比赛前填写用户信息,则需要勾选“开启录入信息功能”,然后勾选下面的字段,如图14所示。配置完成后,页面跳转到答题页,单击“开始挑战”按钮,弹出一个填写答题用户信息的表单,该表单中的字段就是在配置信息中设定的内容,如图15所示。

在这里插入图片描述
在这里插入图片描述

后台管理员
后台管理员可以通过账号密码登录后台,输入网址“http://127.0.0.1:8000/admin/”,输入如下账号密码即可登录。
账号:mr
密码:mrsoft
登录成功后进入后台主页,如图16所示。在后台主页,管理员可以根据对应菜单执行相应的管理工作。

在这里插入图片描述
部分源码如下,其余完整详见下载。

# -*- coding: utf-8 -*-

from django.contrib import admin

from business.models import (AppConfigInfo, BusinessAccountInfo,
                             BusinessAppInfo, UserInfoImage, UserInfoRegex)
from utils.redis.rpageconfig import set_pageconfig, set_form_regex, rem_form_regex


class BusinessAccountInfoAdmin(admin.ModelAdmin):
    """
    商家账户后台
    """

    list_display = ('account_id', 'email', 'company_name', 'company_description', 'company_username', 'company_phone', 'company_location', 'status', 'created_at', 'updated_at')
    list_filter = ('account_id', 'status')
    readonly_fields = ('account_id',)


class BusinessAppInfoAdmin(admin.ModelAdmin):
    """
    App信息后台
    """

    list_display = ('account_id', 'app_id', 'app_name', 'app_description', 'status', 'created_at', 'updated_at')
    list_filter = ('account_id', 'app_id', 'status')
    readonly_fields = ('app_id',)


class AppConfigInfoAdmin(admin.ModelAdmin):
    """
    App具体配置后台
    """

    list_display = ('app_id', 'app_name', 'status', 'created_at', 'updated_at')
    search_fields = ('app_id', 'app_name')
    fieldsets = (
        ('None', {
            'fields': ('app_id', 'app_name',)
        }),
        (u'文案配置', {
            'classes': ('collapse',),
            'fields': (
                'rule_text',
            ),
        }),
        (u'显示信息相关', {
            'classes': ('collapse',),
            'fields': (
                'is_show_userinfo', 'userinfo_fields', 'userinfo_field_names', 'option_fields',)
        }),
    )

    def save_model(self, request, obj, form, change):
        obj.save()
        set_pageconfig(obj.data)


class UserInfoImageAdmin(admin.ModelAdmin):
    """
    用户表单图片配置后台
    """

    list_display = ('uii_name', 'status', 'created_at', 'updated_at')

    def save_model(self, request, obj, form, change):
        obj.save()


class UserInfoRegexAdmin(admin.ModelAdmin):
    """
    用户表单正则表达式配置后台
    """

    list_display = ('field_name', 'regex', 'description', 'status', 'created_at', 'updated_at')
    list_filter = ('field_name',)

    def save_model(self, request, obj, form, change):
        set_form_regex(obj.field_name, obj.data)
        obj.save()

    def delete_model(self, request, obj):
        rem_form_regex(obj.field_name)
        obj.delete()


admin.site.register(BusinessAccountInfo, BusinessAccountInfoAdmin)
admin.site.register(BusinessAppInfo, BusinessAppInfoAdmin)
admin.site.register(AppConfigInfo, AppConfigInfoAdmin)
admin.site.register(UserInfoImage, UserInfoImageAdmin)
admin.site.register(UserInfoRegex, UserInfoRegexAdmin)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/395709.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jvm之堆解读

堆(Heap)的核心概述 堆针对一个JVM进程来说是唯一的,也就是一个进程只有一个JVM,但是进程包含多个线程,他们是共享同一堆空间的。 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。 Java堆区…

我把物流装备用到了轨道交通接驳货物上,RGV,输送线,提升机,WCS……

导语大家好,我是智能仓储物流技术研习社的社长,你的老朋友,老K。新书上市《智能物流系统构成与技术实践》2023年度-厂商宣传合作位--->点击详情作者:马洪旭“智能制造”、“智慧物流”、“绿色物流”等高频词汇已成为物流行业的…

作物杂交(spfa()算法)

蓝桥杯集训每日一题acwing3305 作物杂交是作物栽培中重要的一步。 已知有 N 种作物 (编号 1 至 N),第 i 种作物从播种到成熟的时间为 Ti。 作物之间两两可以进行杂交,杂交时间取两种中时间较长的一方。 如作物 A 种植时间为 5 天,作物 B …

NTLM协议原理分析

LM Hash 和 NTLM Hashwindows用户的密码以哈希的形式保存在SAM文件中“%SystemRoot%\system32\config\SAM”。域用户的密码以哈希的形式保存在域控的 NTDS.dit 文件中。 密码的哈希值格式如下用域名:uid:LM哈希:NTLM哈希:::由于LM Hash 有安全缺陷,所以Windows Vist…

88. 合并两个有序数组

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应…

【Linux】实现简易的Shell命令行解释器

大家好我是沐曦希💕 文章目录一、前言二、准备工作1.输出提示符2.输入和获取命令3.shell运行原理4.内建命令5.替换三、整体代码一、前言 前面学到了进程创建,进程终止,进程等待,进程替换,那么通过这些来制作一个简易的…

Python每日一练(20230308)

目录 1. Excel表列名称 ★ 2. 同构字符串 ★★ 3. 分割回文串 II ★★★ 🌟 每日一练刷题专栏 C/C 每日一练 ​专栏 Python 每日一练 专栏 1. Excel表列名称 给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。 例如&#xff1…

在 k8S 中搭建 SonarQube 9-community 版本(使用 PostgreSQL 数据库)

本文搭建的 SonarQube 版本是 7.4.9-community,由于在官方文档中声明 7.9 版本之后就不再支持使用 MySQL 数据库。所以此次搭建使用的数据库是 PostgreSQL 11.4 版本。 一、部署 PostgreSQL 服务 1. 创建命名空间 将 PostgreSQL 和 SonarQube 放在同一个命名空间…

02从零开始学Java之Java到底是个啥?

博主简介我是壹壹哥(孙玉昌),十年软件开发授课经验,CSDN博客专家、阿里云专家博主、掘金优秀创作者、infoQ专家博主;关注壹壹哥(孙玉昌),带你玩转Java,轻松实现从入门到放弃,哦不,到熟悉&#x…

【基于STM32的多功能台灯控制】

基于STM32的多功能台灯控制 在之前一篇博文中已出过智能台灯相关的介绍,在这里对之前的模块以及功能上进行了优化和功能上的改进,需源码或实物可私【创作不易-拒绝白嫖】 功能说明 1、按键模式多功能台灯在设计上使用了4个按键分别做为 按键1模式的切换…

2.5 Strassen矩阵乘法

矩阵乘法是线性代数中最常见的问题之一,在数值计算中有广泛的应用。设4和B是两个nxn矩阵,它们的乘积 AB 同样是一个nxn矩阵。A和B的乘积矩阵 C中元素C定义为C 2anw6o1若依此定义来计算4 和B的乘积短阵C,则每计算 C的一个元素C,需要…

如何提高爬虫工作效率

单进程单线程爬取目标网站太过缓慢,这个只是针对新手来说非常友好,只适合爬取小规模项目,如果遇到大型项目就不得不考虑多线程、线程池、进程池以及协程等问题。那么我们该如何提升工作效率降低成本? 学习之前首先要对线程&#…

windows下一键启动vue项目,后台运行cmd命令

1、写好启动vue的bat echo off E: cd E:\project-html\study\vue-demo npm run serve 2、准备vbs脚本,指向bat Set hd CreateObject("Wscript.Shell")hd.run "cmd /c C:\Users\xxh\Desktop\vue-demo.bat",vbhide 3、双击vbs脚本就可以启动了…

java八股系列——SpringMVC从接受请求到完成响应的过程

Spring的MVC框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传。 流程大致如下: 用户发起请求:用…

一般用哪些工具做大数据可视化分析?

做数据分析这些年来,从刚开始的死磕excel,到现在成为数据分析行业的偷懒大户,使用过的工具还真不少! 这篇分享一些我在可视化工具上的使用心得,由简单到复杂,按照可视化类型一共分为纯统计图表类、GIS地图…

C/C++每日一练(20230308)

目录 1. 最大间距 ★★★ 2. 被围绕的区域 ★★ 3. 天际线问题 ★★★ 🌟 每日一练刷题专栏 C/C 每日一练 ​专栏 Python 每日一练 ​专栏 1. 最大间距 给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。 如果数组…

Windows环境下nacos的下载与安装

一、nacos的下载地址:Releases alibaba/nacos GitHub根据自己项目配置的版本,下载对应的nacos客户端。windows下载上面的tar.gz的安装包,linux下载下面的zip包二、下载解压成功后,修改配置文件D:\nacos\bin下面的startup.cmd。把…

基于JavaEE社区物业管理系统开发与实现(附源码资料)

文章目录1. 适用人群2. 你将收获3.项目简介4.技术栈5.测试账号6.部分功能模块展示6.1.管理员6.2.业主1. 适用人群 本课程主要是针对计算机专业相关正在做毕业设计或者是需要实战项目的Java开发学习者。 2. 你将收获 提供:项目源码、项目文档、数据库脚本、软件工…

sealos 神奇功能 serverless kubernetes 之 cloud terminal

何为 serverless kubernetes 顾名思义,就是不需要安装直接打开网页就可以直接使用的 kubernetes,是一个多租户共享 kubernetes 的租户模型,这样做的好处是对于用户的使用成本极低,而且无需安装 kubernetes, 且天生对多租户的隔离…

C语言杂记(字符串)

字符串 字符串的定义方法 注意&#xff1a;char *data3 “hello3”;//字符串常量&#xff0c;不允许被修改 #include <stdio.h>int main() {char data[] {h,e,l,l,o};//字符数组char data2[] "hello2";//可修改char *data3 "hello3";//字符串常…