def user_login(request): if request.method == 'GET': return render(request, 'users/login.html', {}) else: user_login_form = UserLoginForm(request.POST) if user_login_form.is_valid(): email = user_login_form.cleaned_data['email'] password = user_login_form.cleaned_data['password'] a = authenticate(username=email, password=password) if a: if a.is_start: login(request, a) msg = UserMessageInfo() msg.userinfo = a.id msg.message = '欢迎登录尚在线' msg.save() # return redirect(reverse('index')) url = request.COOKIES.get('url', '/') ret = redirect(url) ret.delete_cookie('url') return ret else: return HttpResponse('请去激活') else: return render(request, 'users/login.html', {'msg': '用户名或者密码有误'}) else: return render(request, 'users/login.html', {'user_login_form': user_login_form})
def post(self, request): user_register_form = UserRegisterForm(request.POST) if user_register_form.is_valid(): email = user_register_form.cleaned_data['email'] password = user_register_form.cleaned_data['password'] user = UserProfile.objects.filter( Q(email=email) | Q(username=email)) if user: return render(request, 'users/register.html', {'msg': '用户已经存在'}) else: a = UserProfile() a.username = email a.email = email a.set_password(password) a.save() # 注册成功之后先创建一条消息存储,然后发邮件 msg = UserMessageInfo() msg.userinfo = a.id msg.message = '欢迎注册尚在线' msg.save() send_email_verify(email, 'register') return HttpResponse('您的邮件已经发送,请尽快去激活') else: return render(request, 'users/register.html', {'user_register_form': user_register_form})
def user_login(request): if request.method == 'GET': return render(request, 'users/login.html') else: user_login_form = UserLoginForm(request.POST) if user_login_form.is_valid(): email = user_login_form.cleaned_data['email'] password = user_login_form.cleaned_data['password'] # authenticate只验证username和password ,不能用Q,且django1.11 版本,自动验证is_alive 子段,如果为0,则 # 用户名密码正确也会返回None a = authenticate(username=email, password=password) if a: if a.is_start: login(request, a) msg = UserMessageInfo() msg.userinfo = a.id msg.message = '欢迎登录尚在线' msg.save() url = request.COOKIES.get("url", "/") ret = redirect(url) ret.delete_cookie('url') return ret # return redirect(reverse('index')) else: return HttpResponse('请先激活') else: return render(request, 'users/login.html', {'msg': '用户名或密码错误'}) else: return render(request, 'users/login.html', {'user_login_form': user_login_form})
def user_register(request): if request.method == 'GET': user_register_form = UserRegisterForm() return render(request, 'users/register.html', {'user_register_form': user_register_form}) else: user_register_form = UserRegisterForm(request.POST) if user_register_form.is_valid(): email = user_register_form.cleaned_data['email'] password = user_register_form.cleaned_data['password'] user = UserProfile.objects.filter( Q(username=email) | Q(email=email)) if user: return render(request, 'users/register.html', { 'msg': '用户名已存在', 'user_register_form': user_register_form }) else: user = UserProfile() user.email = email user.set_password(password) user.username = email user.save() # 注册成功,存储消息 msg = UserMessageInfo() msg.message = '欢迎注册尚在线' msg.userinfo = user.id msg.save() send_email_verify(email, 'register') return HttpResponse('激活链接以发到你的邮箱,请你前去激活') else: return render(request, 'users/register.html', {'user_register_form': user_register_form})
def user_active(request, code): if code: email_ver = EmailVerify.objects.filter(code=code)[0] if email_ver: email = email_ver.email user = UserProfile.objects.filter(email=email)[0] user.is_start = True user.save() msg = UserMessageInfo() msg.userinfo = user.id msg.message = '激活成功' msg.save() return redirect(reverse('users:user_login')) else: return HttpResponse('验证码错误,激活失败')
def post(self, request): user_login_form = UserLoginForm(request.POST) if user_login_form.is_valid(): email = user_login_form.cleaned_data['email'] password = user_login_form.cleaned_data['password'] a = authenticate(username=email, password=password) if a: if a.is_start: login(request, a) msg = UserMessageInfo() msg.userinfo = a.id msg.message = '欢迎登录' msg.save() return redirect(reverse('index')) else: return HttpResponse('请去激活') else: return render(request, 'users/login.html', {'msg': '用户名或者密码有误'}) else: return render(request, 'users/login.html', {'user_login_form': user_login_form})
def user_reset(request, code): if request.method == 'GET': if code: email_ver = EmailVerify.objects.filter(code=code)[0] email = email_ver.email user = UserProfile.objects.filter(email=email)[0] return render(request, 'users/password_reset.html', { 'user_id': user.id, }) else: pass else: user_reset_form = UserResetForm(request.POST) if user_reset_form.is_valid(): password = user_reset_form.cleaned_data['password'] password1 = user_reset_form.cleaned_data['password1'] if code: user = UserProfile.objects.filter(id=int(code)) if user: if password == password1: user[0].set_password(password) user[0].save() msg = UserMessageInfo() msg.userinfo = user[0].id msg.message = '找回密码成功' msg.save() return redirect(reverse('users:user_login')) else: return render(request, 'users/password_reset.html', {'msg': '两次密码输入不一致'}) else: pass else: pass else: return render(request, 'users/password_reset.html', {'user_reset_form': user_reset_form})