竹笋

首页 » 问答 » 环境 » 智慧校园比赛系统PythonDjan
TUhjnbcbe - 2023/1/19 22:32:00
白癜风专家郑华国 http://m.39.net/baidianfeng/a_4465350.html

作者主页:编程指南针

简介:Java领域优质创作者、CSDN博客专家Java项目、简历模板、学习资料、面试题库、技术互助

文末获取源码

项目编号:BS-Python-

1.项目说明

项目名称:智慧答题系统

项目版本:V1.0

版本变化:无

完成日期:年1月20日

2.系统环境

Windows或Linux发行版(Ubuntu16.04/CentOS等)

MySQL5.5以上版本

Python3.5以上版本

Redis任意新版本即可

Django版本2.1

本项目基于Python+Django技术开发实现,开发工具IDEA,数据库MYSQL5.7

主要实现题库设置,比赛生成,在线答题,自动排名,自动组卷,自动改卷等相关功能。

下面展示一下系统的相关功能:

用户注册

登陆

快速出题

配置比赛

上传题库

参与比赛

开始作题

自动阅卷排名

修改个人密码

查看所有比赛

以上是智慧校园比赛系统的主要内容

系统部分核心代码:

#-*-coding:utf-8-*-fromdjango.contrib.auth.modelsimportUserfromdjango.confimportsettingsfromdjango.dbimporttransactionfromdjango.views.decorators.csrfimportcsrf_exemptfromaccount.modelsimportProfilefrombusiness.modelsimportBusinessAccountInfofromutils.responseimportjson_responsefromutils.errorsimportBizError,UserErrordefcheck_biz(request):email=request.GET.get(email,)#获取邮箱try:#检查数据库中是否由该邮箱注册过的数据biz=BusinessAccountInfo.objects.get(email=email)exceptBusinessAccountInfo.DoesNotExist:biz=Nonereturnjson_response(,OK,{#返回是否已经被注册过和是否已经有此用户userexists:User.objects.filter(email=email).exists(),bizaccountexists:bool(biz)})

csrf_exempt

transaction.atomicdefregistry_biz(request):email=request.POST.get(email,)#获取填写的邮箱name=request.POST.get(name,)#获取填写的机构名username=request.POST.get(username,)#获取填写的机构联系人phone=request.POST.get(phone,)#获取填写的手机号ctype=request.POST.get(type,BusinessAccountInfo.INTERNET)#获取机构类型flag=int(request.POST.get(flag,2))#获取一个标记位,代表用户是创建新用户还是使用绑定老用户的方式uname=email.split(

)[0]#和之前的注册逻辑没什么区别,创建一个账户名ifnotUser.objects.filter(username__exact=name).exists():final_name=usernameelifnotUser.objects.filter(username__exact=uname).exists():final_name=unameelse:final_name=emailifflag==2:#如果标记位是2,那么将为他创建新用户user=User.objects.create_user(username=final_name,email=email,password=settings.INIT_PASSWORD,is_active=False,is_staff=False)ifflag==1:#如果标记位是1,那么为他绑定老用户try:user=User.objects.get(email=email)exceptUser.DoesNotExist:returnjson_response(*UserError.UserNotFound)pvalues={phone:phone,name:final_name,user_src:Profile.COMPANY_USER,}profile,_=Profile.objects.select_for_update().get_or_create(email=email)#获取或创建用户信息fork,vinpvalues.items():setattr(profile,k,v)profile.save()bizvalues={
1
查看完整版本: 智慧校园比赛系统PythonDjan