一. Django默认的密码重置
1.路由
# url.pyfrom django.contrib.auth import views as auth_viewsurlpatterns = [# 密码重置path('password_reset/', auth_views.PasswordResetView.as_view(), name='password_reset'),# 用户输入邮箱后,跳转到此页面path('password_reset/done/', auth_views.PasswordResetDoneView.as_view(), name='password_reset_done'),# 用户点击邮件中的链接,进入重置密码的页面path('reset/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(), name='password_reset_confirm'),# 密码成功重置后,跳转到此页面path('reset/done/', auth_views.PasswordResetCompleteView.as_view(), name='password_reset_complete'),
]
2.配置
# settings.py# 邮件设置 (在开发环境下使用控制台邮件发送)
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' # 在开发模式下打印邮件内容# 在生产环境中使用真实的邮件服务(例如Gmail、SendGrid等)
# EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
# EMAIL_HOST = 'smtp.gmail.com'
# EMAIL_PORT = 587
# EMAIL_USE_TLS = True
# EMAIL_HOST_USER = 'your_email@example.com'
# EMAIL_HOST_PASSWORD = 'your_email_password'DEFAULT_FROM_EMAIL = '123456@qq.com' # 发件人邮箱PASSWORD_RESET_TIMEOUT = 100 # 60 * 60 * 24 * 1 # 24 小时(单位:秒)
3.访问 /password_reset/

4.返回成功页面

5.控制台显示

6.点击链接 进到重置页面

7.修改成功

二. 自定义密码重置
1. 输入注册邮箱

2. 返回重置链接

3. 重置密码

4. 重置完成 返回到登录页
