Django集成的密码找回功能
要实现忘记密码功能,您需要进行以下修改:
- 添加忘记密码链接到登录页面。
- 创建密码丢失修改页面。
- 创建密码修改页面。
- 编写相应的视图函数来处理密码丢失修改和密码修改逻辑。
- 编写发送验证信息到邮箱的逻辑。
以下是对您提供的模板的修改,以添加忘记密码链接和相应的修改页面:
{% extends 'base.html' %} {% load widget_tweaks %} {% block content %} <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <div class="container"> <div class="row justify-content-center"> <div class="col-lg-4 col-md-6 col-sm-10"> <h2 class="text-center mt-4 mb-3">登录</h2> {# 添加垂直内边距 #} <hr> {% if error_message %} <div class="alert alert-danger">{{ error_message }}</div> {% endif %} <form method="post" action="{% url 'login' %}"> {% csrf_token %} <div class="form-group"> <label for="username">用户名</label> <input type="text" class="form-control" id="username" name="username" placeholder="Enter your username"> </div> <div class="form-group"> <label for="password">密码</label> <input type="password" class="form-control" id="password" name="password" placeholder="Enter your password"> </div> <div class="form-group"> <a href="{% url 'password_reset' %}" class="btn btn-link">忘记密码?</a> </div> <div class="form-group text-center"> <button type="submit" class="btn btn-primary btn-block">登录</button> <a href="{% url 'register' %}" class="btn btn-link">注册</a> </div> </form> </div> </div> </div> {% endblock %} {% block menu %} {% endblock %}
- 创建密码重置 URL 路由:
# urls.py from django.urls import path from django.contrib.auth import views as auth_views urlpatterns = [ # 其他URL路由 path('reset-password/', auth_views.PasswordResetView.as_view(), name='password_reset'), path('reset-password/done/', auth_views.PasswordResetDoneView.as_view(), name='password_reset_done'), path('reset-password/confirm/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(), name='password_reset_confirm'), path('reset-password/complete/', auth_views.PasswordResetCompleteView.as_view(), name='password_reset_complete'), ]
- 创建密码重置模板: 在您的模板目录下创建以下模板文件:
registration/password_reset_form.html
: 重置密码表单模板registration/password_reset_email.html
: 发送重置密码邮件模板registration/password_reset_done.html
: 密码重置请求已发送确认页面模板registration/password_reset_confirm.html
: 重置密码确认页面模板registration/password_reset_complete.html
: 密码重置完成页面模板
您可以参考 Django 文档中关于这些模板的说明。
-
创建相应的视图函数(这些视图函数已经由 Django 的内置视图处理程序提供,无需自己编写)。
-
启用邮件发送功能: 在您的 Django 项目设置中配置邮件发送设置,以便 Django 能够发送重置密码链接到用户的注册邮箱。
这样,当用户点击“忘记密码”链接时,他们将被引导到密码重置页面,并且在输入注册邮箱后,系统将向该邮箱发送重置密码的链接。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2023-04-24 Django4全栈进阶之路16 项目实战(用户管理):user_list.html用户列表画面设计
2023-04-24 Django4全栈进阶之路15 项目实战(用户管理):login.html登录画面设计
2023-04-24 Django4全栈进阶之路14 项目实战(用户管理):base.html基础模板设计
2023-04-24 Django4全栈进阶之路13 template模板