用户登录 之 找回密码 | Django

# 点击找回密码跳转到指定页面页面,输入用户名以及验证码;
# 验证成功之后,跳转重置密码页面;
# 重置成功之后,跳转登录页面;
1.在登录页面点击找回密码,跳转指定页面 forgetpwd.html
2.forgetpwd.html页面表单验证
    # edu_forms
    # 找回密码
    class ForgetForm(forms.Form):
        # 验证码
        captcha = CaptchaField()
        email = forms.EmailField(required=True)
3.跳转重置页面的视图以及urlconf
    # views.py
    class ResetView(View):
        """跳转重置密码页面"""
        def get(self,request, reset_code):
            pwd_reset = PwdResetForm()
            # 获取对应验证码的邮箱对象
            record = EmailVerifyRecord.objects.filter(code=reset_code)[0]
            if record:
                # 获取邮箱,传到上下文到前端,设置一个隐藏的input框,与forms表单一起提交到后端
                email = record.email
                return render(request, ‘password_reset.html‘, {‘email‘: email, ‘pwd_reset‘:pwd_reset})
            else:
                # 没有获取到重置码
                return render(request, ‘register.html‘)
    # urls.py
    # 跳转重置密码页面
    url(r‘^reset/(?P<reset_code>.*)/$‘, ResetView.as_view(), name=‘user_reset‘),
4.页面成功跳转至password_reset.html,表单验证
    # edu_forms
    # 重置密码
    class PwdResetForm(forms.Form):
        password1 = forms.CharField(required=True)
        password2 = forms.CharField(required=True)
5.重置密码form提交处理
    # views.py
    class ModifyPwdView(View):
        """重置密码"""
        def post(self, request):
            pwd_reset = PwdResetForm(request.POST)
            if pwd_reset.is_valid():
                # 获取两次输入的密码
                pwd1 = request.POST.get(‘password1‘, ‘‘)
                pwd2 = request.POST.get(‘password2‘, ‘‘)
                # 这里还要取到对应邮箱,从前端hidden属性标签下的email值获取
                email = request.POST.get(‘email‘, ‘‘)
                if pwd1 != pwd2:
                    return render(request, ‘password_reset.html‘, {‘pwd_reset‘:pwd_reset, ‘email‘:email, ‘msg‘:‘密码不一致!‘})
                else:
                    # 修改密码
                    user = UserProfile.objects.get(email=email)
                    user.password = make_password(pwd2)
                    user.save()
                    return redirect(request, ‘login.html‘)
            else:
                return render(request, ‘password_reset.html‘, {‘pwd_reset‘:pwd_reset})
    # urls.py
    # 重置密码
    url(r‘^modify/$‘, ModifyPwdView.as_view(), name=‘modify_pwd‘)
    # password_reset.html
    <form id="reset_password_form" action="{% url ‘modify_pwd‘ %}" method="post">
        {% csrf_token %}
        <ul>
            <li>
                <span class="">新 密 码 :</span>
                {{ pwd_reset.password1 }}
                <i></i>
            </li>
            <input type="hidden" name="email" value="{{ email }}">
            <li>
                <span class="">确定密码:</span>
                {{ pwd_reset.password2 }}
                <i></i>
            </li>
            <li class="button">
                <input value="提交" type="submit">
            </li>
        </ul>
    </form>
时间: 2024-08-06 05:01:56

用户登录 之 找回密码 | Django的相关文章

WordPress 使用 Pie-Register 添加前台注册、登录、找回密码和编辑个人资料功能

Pie-Register 是一个功能比较完善的 WordPress 才能,使用它可以很方便添加和定制前台用户注册.登录.找回密码和编辑个人资料的功能.此外,还内置了邀请码功能以及用户验证功能. Pie-Register 功能 强大的注册表单生成器 用户验证机制(邮件验证或管理员审核) 具备邀请码功能 自定义电子邮件模板 内置验证码功能 用户导入/导出 通过PayPal支付网关可设置付费注册 一次性会员费用 Pie-Register 预览 在这里就不提供前台页面预览了. Pie-Register

2015-6-8 用javascript+ Java+md5解决http协议下,用户登录明文传输密码问题

不应该说是前段时间了,就最近吧,发现公司有一个系统用的还是Http协议,当时就想了,现在都用https协议,有证书的那安全大很多啊 ,还用http不会连加密都没有吧,找了一番,果然如此,别说是传输加密了,就连后台保存到数据库的密码都没有加密,本着闲的蛋疼的想法(主要是公司大部分是业务,感觉想跳啊),于是一个毁(无)天(聊)灭(之)地(极)的计划就这样诞生了,咳咳... 好了不废话,下面说下简单的思路: 用户登录页面,获取到用户密码,用MD5加密,然后进行传输,服务器端获取的是一个加密过的密码.然

Django从零搭建个人博客 | 使用allauth插件管理用户登录与注册

原文博客地址:http://www.eosones.com/ django-allauth是最受欢迎的管理用户登录与注册的第三方Django安装包,可以大大简化我们用户注册,登录及账户管理,其核心功能包括用户注册.忘记密码.登录(微信,微博等第三方登录:邮箱验证).登录后密码重置.邮箱发送密码重置链接.退出等. 安装与设置 运行CMD,打开虚拟环境 pip install django-allauth 安装好后设置Myblog / settings.py,将allauth相关APP加入到INST

Django实现单用户登录

最近由于要毕业了写论文做毕设,然后还在实习发现已经好久都没有写博客了.今天由于工作需求,需要用Django实现单用户登录.大概意思就是跟QQ一样的效果,每个账号只能一个地方登录使用,限制账号的登录次数.由于用的是Django自带的认证,然后校验用户是否登录其实就是通过Session实现的.下面就简单分享一下怎么实现的吧. 单用户登录实现 在做用户登录认证的时候Django自带的有is_authenticated()方法.下面就是一个简单的认证过程. if request.user.is_auth

找回密码功能设计

背景 一个大型网站平台,用户自主注册难免会有用户忘记密码,因此需要提供找回密码功能. 本方案是通过邮箱找回密码. 需要的表结构 找回密码表(FindPwdRecord): 字段名 类型 描述 备注 ID string 主键 UserID string 用户ID UserName string 用户名 Token string 找回密码的凭证 通过随机算法生成的无重复字串 Email string 邮箱地址   CreateTime Datetime 发起时间 ExpiryTime Datetim

【Python】用户登录三次锁定

需求说明: 用户登录,对密码进行三次校验,三次均失败后,将锁定用户名,不允许登录. 解决方案: 1.明确可成功登录的用户名和密码: 2.用户黑名单,三次登录失败后,将用户名写入黑名单: 3.检测黑名单的内容,如果与当前登录名一致,则不允许继续输入密码,直接提示用户已锁定. 代码实现: 1 # -*- coding:utf-8 -*- 2 3 #登录三次锁定用户 4 5 #用于计数(循环三次的判断) 6 count = 0 7 8 #真实用户名和密码 9 real_username = "iamx

找回密码,发送原密码到注册邮箱!

1 #region //发送邮件方法 支持带附件 2 /// <summary> 3 /// 发送edm邮件,可以附加附件 4 /// </summary> 5 /// <param name="StrTo">收件人地址</param> 6 /// <param name="strFrom">发件人地址</param> 7 /// <param name="StrBody&quo

jdbc封装模拟用户登录

dao层 接口 package com.qu.dao; public interface ILoginDAO { /** * 模拟用户登录 * 验证用户名 密码是否正确 * select * from from login where username=? and password=? */ boolean isLogin(String username,String password); } dao层 实现类 package com.qu.dao.impl; import com.qu.dao

Window上python开发--4.Django的用户登录模块User

在搭建网站和web的应用程序时,用户的登录和管理是几乎是每个网站都必备的.今天主要从一个实例了解以下django本身自带的user模块.本文并不对user进行扩展. 主要使用原生的模块. 1.User模块基础: 在使用user 之前先import到自己的iew中.相当与我们自己写好的models.只不过这个是系统提供的models. from django.contrib.auth.models import User # 导入user模块 1.1User对象属性 User 对象属性:usern