以下是第一种方法
1 # 注册 2 def userreg(request): 3 # 判断是否POST方式,如果是则进行下面的表单处理 4 if request.method == 'POST': 5 userDict = request.POST.dict() # 吧用户输入的信息转成字典形式,并用userDict接收 6 try: 7 del userDict['csrfmiddlewaretoken'] 8 # 格式化时间 9 myDate = datetime.now() 10 formatedDate = myDate.strftime("%Y-%m-%d %H:%M:%S") 11 # 第一步,保存新用户信息到数据库 12 row = Users.objects.create(createtime=formatedDate, **userDict) 13 # Users.objects.create(email=email, pwd=pwd, nicheng=nicheng) # 创建一个对象实例 14 userDict['id'] = row.id 15 # 第二步,如果验证通过,则保存用户信息到 session, 实现用户登陆 16 # userDict = {'uaid': row.id, 'email': rouserDictw.email, 'pwd': userDict.pwd,'role':1} 17 request.session['dict'] = userDict # 设置session 18 return render(request, 'home.html') # 注意这里,这里是返回home页面,在实现登录注册的另一个方法里使用的是重定向 19 #验证是否重复 20 except Exception as err: 21 errStr = err.args[1] 22 if 'emailuniq' in errStr: 23 return HttpResponse('<script>alert("用户名重复");location.href="/";</script>') 24 elif 'nichenguniq' in errStr: 25 return HttpResponse('<script>alert("昵称重复");location.href="/";</script>') 26 else: 27 return render(request, 'home.html') 28 29 30 # 登录 31 def userlogin(request): 32 emailVal = request.POST.get('email') 33 pwd = request.POST.get('pwd') 34 35 #方法1,直接查询数据方式 这里采用方法2 36 #cursor = connection.cursor() 37 # userSql = "SELECT * FROM users WHERE `email`=%s AND pwd=%s" 38 # cursor.execute(userSql, [emailVal, pwd]) 39 # row = cursor.fetchone() 40 41 #方法2,model对象查询 42 row = Users.objects.filter(email=emailVal, pwd=pwd).first() 43 if row == None: # 如果不匹配 44 return HttpResponse('<script>alert("用户名或密码出错");location.href="/";</script>') 45 else: 46 # 第二步,如果验证通过,则保存用户信息到 session, 用户登陆 47 loginbean = {} 48 loginbean['id'] = row.id 49 loginbean['nicheng'] = row.nicheng 50 loginbean['role'] = row.role 51 request.session['loginbean'] = loginbean # 设置session 52 return render(request, 'home.html') 53 else: 54 return HttpResponse('<script>alert("用户名已过期请重新登录");location.href="/";</script>') 55 return render(request, 'home.html')