邮箱注册登录 之 激活邮箱 | Django
Posted 胡说八道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了邮箱注册登录 之 激活邮箱 | Django相关的知识,希望对你有一定的参考价值。
# --------------------------------------------| 激活邮箱 # 在注册过程中,保存一个is_active=False字段,表示用户还未激活; # 用户点击链接之后激活; # 提取链接url中active/后面的激活码,与数据库code进行比对; # urls.py from users.views import ActiveUserView ... url(r‘^active/(?P<active_code>.*)/$‘, ActiveUserView.as_view(), name="user_active") # views.py from django.views.generic.base import View from users.models import EmailVerifyRecord class ActiveUserView(View): def get(self, request, active_code): """用户激活""" # 从url获取的激活码,判断数据库中是否存在同样的值 code_record = EmailVerifyRecord.objects.filter(code=active_code)[0] if code_record: # 如果数据库中已经保存了该激活码| # 获取邮箱表中的email字段值 email_from_record = code_record.email # 在Userprofile表中查询对应email,修改is_active激活状态 user = UserProfile,objects.get(email=email_from_record) user.is_active = True user.save() else: # 数据库中没有找到激活码 return render(request, "register_fail.html) # views.py # 再到登录login视图中,添加是否激活is_active的条件 from django.views.generic.base imoprt View # View这视图类中,有类似http的get,post等方法 class LoginView(View): def get(self, request): return render(request, "login.html", locals()) def post(self, request): # 创建表单对象 login_form = LoginForm(request.POST) if login_form.is_valid(): user_name = request.POST.get("username", "") pass_word = request.POST.get("password", "") user = authenticate(username=user_name, password=pass_word) if user is not None: # 表示已激活 if user.is_active: # 执行登录 login(request, user) return render(request, "index.html") else: return render(request, "login.html", {"msg":"用户名未激活"}) else: # 登录不成功 return render(request, "login.html", {"msg":"用户名密码错误"}) else: # 同时返回表单验证错误信息 return render(request, "login.html", {‘login_form‘:login_form})
以上是关于邮箱注册登录 之 激活邮箱 | Django的主要内容,如果未能解决你的问题,请参考以下文章