首先我们要想用Django内置的重置密码的功能,我们要知道Django内置的函数是怎么写的
def password_reset(request, template_name=‘registration/password_reset_form.html‘, email_template_name=‘registration/password_reset_email.html‘, subject_template_name=‘registration/password_reset_subject.txt‘, password_reset_form=PasswordResetForm, token_generator=default_token_generator, post_reset_redirect=None, from_email=None, extra_context=None, html_email_template_name=None, extra_email_context=None):
在这个函数中我们目前只需知道四个参数即可,分别是template_name,email_template_name,subject_template_name,post_reset_redirect,我们一个一个来说。
第一个:template_name:这个参数代表的是发送的邮件的页面的位置。例如:我把前台页面放在了templates下的account里面了,那么此处就应该写成:account/页面名字.html
第二个:email_template_name:这个参数代表的是你要给这个邮箱发送的内容。写法同上
第三个:subject_template_name:这个参数代表的是你要发的邮箱的主题,这个地方在前台存的不是htnl页面,是一个txt文档
第四个:post_reset_redirect:这个参数代表的是我们在放松玩邮箱之后页面要跳转的页面是哪一个,注意:此处的路径一定不要写错了。
在此处,我们可以选择Django内置函数的模板,你可以去你电脑的虚拟环境下的lib\site-packages\django\contrib\admin\templates这个目录下找到registration找到重置密码的几个页面
我们可以把这几个页面复制到我们的项目中去,根据我们自己的需求去修改,然后在应用中的urls添加对应的ur:
url(r‘^password-reset/$‘, auth_views.password_reset, {"template_name": "改成自己的路径", "email_template_name": "改成自己的路径", "subject_template_name": "改成自己的路径", "post_reset_redirect": "改成自己的路径"}, name="password_reset"), url(r‘^password-reset-done/$‘, auth_views.password_reset_done, {"template_name": "改成自己的路径"}, name="password_reset_done"), url(r‘^password-reset-confirm/(?P<uidb64>[-\w]+)/(?P<token>[-\w]+)/$‘, auth_views.password_reset_confirm, {"template_name": "改成自己的路径", "post_reset_redirect": "改成自己的路径"}, name="password_reset_confirm"), url(r‘^password-reset-complete/$‘, auth_views.password_reset_complete, {"template_name": "改成自己的路径"}, name="password_reset_complete"),
然后你启动服务器,就可以在前台页面看到放松邮件的页面了。
你以为这样就万事大吉了,NO,NO,NO。
你还需要在项目的settings.py文件的末尾添加下面这些:
EMAIL_BACKEND = ‘django.core.mail.backends.smtp.EmailBackend‘ #把要发送的邮件显示再控制台上,方便调试 EMAIL_USE_SSL = True EMAIL_HOST = ‘smtp.qq.com‘ # 如果是 163 改成 smtp.163.com EMAIL_PORT = 465 EMAIL_HOST_USER = ‘要发送邮箱的账号‘ # 帐号 EMAIL_HOST_PASSWORD = ‘邮箱的授权码‘ # 密码 DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
走到这一步我们才算大功告成了。But
我们需要注意的是我们既然用的是Django的内置函数来重置密码,那么我们设置密码的要求也是比较严格得了,也就是不能太普通,不能太简单等等一系列的要求了。
到此,我们就算是完成了重置密码的功能了。
原文地址:https://www.cnblogs.com/huxiaokang-blog/p/9334934.html