Django(二)精美博客搭建(3)实现找回密码功能

前言

本章主要讲述 【找回密码】 功能的实现

该功能的整个流程简要介绍:

	--> 当用户点击登录页面【忘记密码?】时,会链接进入【忘记密码界面】 
	
	--> 然后需要输入【邮箱、图形验证码信息】进行找回 
	
	--> 点击找回后,会自动向【你的邮箱】发送一条【更改密码邮件】 
	
	--> 在邮箱中,点击【更改密码】,会自动链接到【更新密码】界面
	
	--> 更改密码后,重新登陆即正常
  • ps:我这里用的邮箱是 【网易邮箱】,当然大家也可以自行选择其他邮箱哈 ,百度一下使用方法即可~,使用方法都差不多哒

    另外,如果大家有什么问题大家可以评论留言或者私信我,我会统一回复的

本文包含主要知识点:

  • 1、captcha图片验证码插件的使用
  • 2、js刷新图片验证码
  • 3、发送网易邮件,修改密码

环境:

  • Pycharm
  • python3.6
  • mysql 5.7
  • django 2.0.13


一、准备工作

1、网易邮箱注册及使用

1.1、网易邮箱注册

在这里插入图片描述


1.2、开启POP3/SMTP服务

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


1.3 setting.py中配置

在这里插入图片描述

# 发送邮件配置
EMAIL_HOST = 'smtp.126.com'  # 发送邮件的邮箱的SMTP服务器,这里用的是163邮箱
EMAIL_PORT = 25  # 发件箱的SMTP服务器端口,默认是25
EMAIL_HOST_USER = 'mikasa0610@126.com'  # 发送邮件的邮箱地址
EMAIL_HOST_PASSWORD = '用你之前保存下来的授权码'  # 之前保存的授权码
EMAIL_USE_TLS = True  # 是否使用TLS安全传输协议(用于在两个通信应用程序之间提供保密性和数据完整性)
EMAIL_USE_SSL = False  # 是否使用SSL加密,qq企业邮箱要求使用,163邮箱设置为True的时候会报ssl的错误

2、captcha插件下载及配置

2.1、下载
pip install pillow
pip install django-simple-captcha

在这里插入图片描述


2.2、setting.py中配置

在这里插入图片描述


2.3、创建captche数据库表
python manage.py migrate

在这里插入图片描述


2.4、添加captche路由
# 配置captcha路由
re_path(r'^captcha/', include('captcha.urls'))

在这里插入图片描述



二、新增功能项目概览

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述



三、user模块具体实现

  • 上面已经简要概述了一下,那从这part开始,咱们直接贴代码实现
    若大家有疑问,仍旧可以私信或者在评论下方留言哈

1、urls.py

  • 这里新增【忘记密码】【校验图片验证码】【更新密码】三路由

在这里插入图片描述

# 忘记密码
path('forget_pwd', forget_pwd, name='forget_pwd'),
# 校验图片验证码
path('valid_code', valid_code, name='valid_code'),
# 更新密码
path('update_pwd', update_pwd, name='update_pwd'),

2、views.py

  • views.py里对应新增三视图函数,具体逻辑我注释里面写的比较详细了,大家可以看下

在这里插入图片描述

def forget_pwd(request):
    """
    忘记密码
    :param request:
    :return:
    """
    if request.method == 'GET':
        form = CaptchaTestForm()
        return render(request, 'user/forget_pwd.html', context={
   'form': form})
    else:
        # 获取提交的邮箱,发送邮件,通过发送的邮箱链接设置新的密码
        email = request.POST.get('email')
        # 给此邮箱发送邮件
        result = send_email(email, request)
        if result == 1:
            return HttpResponse("您好,邮件发送成功!请尽快去邮箱查收。")


def valid_code(request):
    """
    校验图片验证码:采用了captcha图片验证码插件
    :param request:
    :return:
    """
    if request.is_ajax
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M1kasal

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值