django-password-reset邮箱重置密码

  1. 看了网上不少关于django-password-reset的教程,但个人感觉不适合新手操作,所以本篇文章希望让跟多的人看懂。

  2. 官网地址:https://django-password-reset.readthedocs.io/en/latest/quickstart.html

  3. 官网的提示:
    django-password-reset邮箱重置密码

  4. 接下来我就把上面官网的要求走上一遍

  5. 下载方式pip:pip install django-password-reset

    1. 把password_reset添加到setting.py的INSTALLED_APPS里面
      django-password-reset邮箱重置密码
    2. 把include(‘password_reset.urls’) 添加到setting.py下面的urls.py里面
      django-password-reset邮箱重置密码
    3. 把{% url “password_reset_recover” %} 放到你的进入密码重置页面里面。
    4. 在templates下面创建base.html,路径为templates/base.html
  6. 上面解释了官网的四个快捷步骤,接下来就联系一下

  7. 创建一个视图(views)函数

  8. urls.py
    
    path('reset_passwords',views.reset_passwords,name='reset_passwords'),
    #创建一个进入重置密码的页面
    
  9. views.py
    def reset_passwords(request):
        return render(request, 'polls/reset_passwords.html')
    
  10. #按照要求把{% url "password_reset_recover" %}加入到该html里面
    templates/reset_password.html
    
        <form method="post" action="#">
            {%csrf_token%}
        </form>
    
        <h5>忘记密码了?</h5>
        <h5>点击<a href='{% url "password_reset_recover" %}'>这里</a>重置密码</h5>
    
  11. 运行结果
    django-password-reset邮箱重置密码

  12. 点击“这里”,url会自动进入http://127.0.0.1:8000/password_resetrecover/ ,password_resetrecover/是默认路径,并且会渲染templates/base.html

  13. 在base.html里面加入{% block content %}{% endblock content %}运行后就可以重置密码了
    django-password-reset邮箱重置密码

  14. 最重要的一点需要配置邮箱

  15. EMAIL_HOST = 'smtp.qq.com'
    EMAIL_PORT = 25   #发件箱的smtp服务器端口
    EMAIL_HOST_USER = '' # 你的 QQ邮箱 账号
    EMAIL_HOST_PASSWORD = ''#QQ邮箱授权码
    EMAIL_USE_TLS = True # 这里必须是 True,否则发送不成功
    EMAIL_FROM = '' # # 你的 QQ邮箱 账号
    
    DEFAULT_FROM_EMAIL = ''# 你的 QQ邮箱 账号
    
  16. 当然只有已经注册的auth用户才可以使用该功能,不然它会提示找不到信息

  17. 最主要的是,这只是简单的实现了该功能,