Django实现注册/登录:方法1

以下是第一种方法

 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')
原文地址:https://www.cnblogs.com/darkmoon/p/7993600.html