def handle_uploaded_xls_student(f): list_return = [] filedir = os.path.dirname(__file__) filedir = filedir.replace('\\', '/') filepath = '/static/' # 指定文件路径 filepathfilename = filedir + filepath + f.name.split('.')[0] + getCurrentTime('_%Y%m%d_%H%M%S') + '.' + \ f.name.split('.')[-1] print(filepathfilename) with open(filepathfilename, 'wb+') as destination: for chunk in f.chunks(): destination.write(chunk) # 识别 并写入 数据库 # 删除掉表头 data = xlrd.open_workbook(filepathfilename) table = data.sheet_by_index(0) nrows = table.nrows # 写入数据库 ################### 抛出异常 for i in range(0, nrows): user = User() user.username = table.cell(i, 0).value user.name = table.cell(i, 1).value myclassname = table.cell(i, 2).value myclassname = myclassname.replace(' ', '') # Classes.objects.get_or_create(classname=myclassname) try: user.myclass = Classes.objects.get(classname=myclassname) # 不需要rollback except Exception as e: print(e) user.myclass = Classes.objects.create(classname=myclassname) print("创建班级" + user.myclass.classname) list_return.append("创建班级" + user.myclass.classname) user.headImage = '//' # 默认密码 user.password = '******' # 123456 user.type = 1 try: user.save() except Exception as e: # 存在了 print(e) print(user.name + '(' + user.username + ')' + "已经存在") list_return.append(user.name + '(' + user.username + ')' + "已经存在") # 删除临时文件 list_return.append("上传完毕") os.remove(filepathfilename) return list_return
def register(request): from django.core.exceptions import ObjectDoesNotExist from website import models if request.method == 'POST': # 表单提交时 form = UserLogForm(request.POST) # form 包含提交的数据 if form.is_valid(): # 如果提交的数据合法 u = form.cleaned_data['username'] p = form.cleaned_data['password'] pw_md5 = hashlib.md5(p.encode(encoding='utf-8')).hexdigest() print('pw_md5:' + pw_md5) try: models.User.objects.get(username=u) except ObjectDoesNotExist: user = User() user.name = u user.username = u user.password = pw_md5 user.myclass = '校外' user.type = 2 user.headImage = '//' user.save() # 登录到新页面中 return render(request, 'teacher/t_index.html') return HttpResponse('error register')