Django实现注册/登录:方法2
1 # 注册******** 2 3 4 def userreg(request): 5 if request.method == 'POST': 6 dict = request.POST.dict() # 把新用户输入的邮箱、密码、昵称等转成字典形式 7 try: 8 del dict['csrfmiddlewaretoken'] 9 # 保存新用户到数据库的User表 注意create 10 user = Users.objects.create(createtime=time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())),**dict) # **dict必须放到最后 11 # 用数据库的自增长id写入字典的id 12 dict['id'] = user.id 13 # Users.objects.create(email=email, pwd=pwd, nicheng=nicheng) #创建一个对象实例 14 request.session['dict'] = dict # 设置注册session 15 16 return redirect('/userlogin') #重定向至登录,实现登陆后注册 17 except Exception as err: 18 errStr = err.args[1] 19 if 'emailuniq' in errStr: 20 return HttpResponse('<script>alert("用户名重复");location.href="/";</script>') 21 elif 'nichenguniq' in errStr: 22 return HttpResponse('<script>alert("昵称重复");location.href="/";</script>') 23 else: 24 return HttpResponse('<script>alert("请正确提交");location.href="/";</script>') 25 26 27 # 登录*********↓↓↓↓↓ 28 29 30 def userlogin(request): 31 if request.method == 'POST': #判断是否是POST方式登录 32 rs = Users.objects.filter(email=request.POST.get('email'), pwd=request.POST.get('pwd')).first() 33 if rs != None: #如果匹配成功 34 loginbean = {} 35 loginbean['id'] = rs.id 36 loginbean['nicheng'] = rs.nicheng 37 loginbean['role'] = rs.role 38 request.session['loginbean'] = loginbean #保存session 39 # return render(request, 'home.html') 40 if rs.role > 0: 41 return redirect('../home') 42 else: 43 return redirect('../adminspace') 44 else: 45 return HttpResponse('<script>alert("用户名或密码错误");location.href="/";</script>') 46 else: #这里以下是注册传过来的 47 dict = request.session['dict'] 48 if dict != None: 49 loginbean = {} 50 loginbean['id'] = dict['id'] 51 loginbean['nicheng'] = dict['nicheng'] 52 loginbean['role'] = 1 53 request.session['loginbean'] = loginbean 54 del request.session['dict'] 55 return render(request, 'home.html') 56 else: 57 return HttpResponse('<script>alert("请登录");location.href="/";</script>')