def user_register(request): """ 用户注册 :param request: :return: """ if not verifyTheText(request): return msg(3) #验证码错误 password1 = request.POST.get('password1', '') # 得到密码1 password2 = request.POST.get('password2', '') # 得到密码2 username = request.POST.get('username', '') # 得到用户名 if user_name_is_used(username): return msg(5) # 用户名已存在 if password1 != password2: return msg(4) # 两次密码不匹配 u = User(userName=username, password=password1) u.save() # 生成一个user对象 # u 没有save()之前是没有userID的, save()之后就是一个完整的user对象了 user_add_to_session(request, u) return msg(0) # 注册成功
def user_login(request): """ 用户登录流程,验证用户名和密码,验证码,是否保存登录信息,登录成功后把用户身份添加到session :param request: 这个request里面有post过来的数据 :return:返回一个字典,代表登录状态,状态说明在msg函数里 """ if not verifyTheText(request): return msg(3) userName = request.POST.get("username", '') # 获得表单中的用户名 password = request.POST.get("password", '') # 获得表单中的密码 ifSave = request.POST.get("ifsave") # u'true' or u'false' u = None try: u = User.objects.get(userName=userName) except: pass if not u: return msg(1) if u.password != password: return msg(2) if ifSave == "true": request.session.set_expiry(3600 * 24 * 30) # 默认是1800秒,选择了保存登录信息,则保存一个月 # 你可以传递四种不同的值给它: # * 如果value是个整数,session会在这些秒数后失效(适用于整个Django框架,即这个数值时效时整个页面都会session失效)。 # * 如果value是个datatime或timedelta,session就会在这个时间后失效。 # * 如果value是0,用户关闭浏览器session就会失效。 # * 如果value是None,session会依赖全局session失效策略。 # response.set_cookie("userName", u.userName) # 如果保存信息就存到cookie里,只存用户名,可以使用这个来识别是哪个用户,但是要操作个人信息还是要从新登陆的 else: request.session.set_expiry(0) # 没选择保存登录信息,关闭浏览器就失效,下次访问需要重新登录 # response.delete_cookie("userName") # 如果不保存信息就从cookie里删除用户名 # response.set_cookie("password", user.password, expires=dt) user_add_to_session(request, u) u.save() # 保存一下可以更新登录时间 return msg(0)