Django内置重置密码的功能(发邮箱)

首先我们要想用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

时间: 2024-08-01 17:46:57

Django内置重置密码的功能(发邮箱)的相关文章

Django框架进阶6 多对多三种创建方式, Ajax, Content-Type前后端传输数据编码格式, Ajax发送文件数据, django内置的序列化功能, Ajax结合sweetalert实现删除二次确认, 批量插入数据, 自定义分页器, ajax结合sweetalert实现删除二次确认

多对多三种创建方式 1.全自动(较为常用) class Book(models.Model): title = models.CharField(max_length=32) authors = models.ManyToManyField(to='Author') # orm就会自动帮你创建第三张表 class Author(models.Model): name = models.CharField(max_length=32) ''' 好处:第三张表自己创建 不足之处:第三张表无法扩展额外

Django内置模板标签

Django内置标签总览 可以查询下表来总览Django的内置标签: 标签 说明 autoescape 自动转义开关 block 块引用 comment 注释 csrf_token CSRF令牌 cycle 循环对象的值 debug 调试模式 extends 继承模版 filter 过滤功能 firstof 输出第一个不为False的参数 for 循环对象 for … empty 带empty说明的循环 if 条件判断 ifequal 如果等于 ifnotequal 如果不等于 ifchange

Django内置Admin

Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有: 依赖APP: django.contrib.auth django.contrib.contenttypes django.contrib.messages django.contrib.sessions 模板的context_processors: django.contrib.auth.context_processors.auth django.contrib.messages.context_

django 内置 admin

Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件使用方式有 依赖APP         django.contrib.auth         django.contrib.contenttypes         django.contrib.messages         django.contrib.sessions     模板的context_processors         django.contrib.auth.context_processo

Django内置过滤器详解附代码附效果图--附全部内置过滤器帮助文档

前言 基本环境 Django版本:1.11.8 Python版本:3.6 OS: win10 x64 本文摘要 提供了常用的Django内置过滤器的详细介绍,包括过滤器的功能.语法.代码和效果示例. 本文完整项目文件代码下载地址:完整示例 Django完整内置过滤器帮助文档:Django内置过滤器完整版 参考文献:Django 中文文档 1.8 内置过滤器 注意:所有带参数的过滤器,在使用时,冒号:和参数中间不能有空格. add加 功能: 把add后的参数num加给value: 数字相加会进行算

解决微信屏蔽内置浏览器的下载功能以及如何跳转到手机默认浏览器下载的实现

今天一后台同事问我:为什么从App里面分享到微信好友时,在微信里没有发下载分享里的软件,而在浏览器中却可以? 于是我在微信公众号中试了一下,发现果然不可以下载.通过google 发现,原来是微信屏蔽了内置浏览器的下载功能.那么有没有解决办法呢? 肯定是有的. 判断发现是在微信中打开,给提示让其从右上角选择在浏览器中打开,这样的效果对于用户体验来说肯定是差的.所以我们经过长时间的尝试找到一个更好的解决方式: 桔子跳转是一款基于微信后端开发了一款微信营销下载推广助手,使用了本插件生成的链接,用户在微

Django内置模版过滤器

Django内置过滤器总览 可以查询下表来总览Django的内置过滤器: 过滤器 说明 add 加法 addslashes 添加斜杠 capfirst 首字母大写 center 文本居中 cut 切除字符 date 日期格式化 default 设置默认值 default_if_none 为None设置默认值 dictsort 字典排序 dictsortreversed 字典反向排序 divisibleby 整除判断 escape 转义 escapejs 转义js代码 filesizeformat

django 内置“信号”机制和自定义方法

一.引子 在操作数据的时候,假设我们需要记录一些日志,这个时候,我们需要用什么来显示这个需求呢?装饰器?装饰器只能先实现整体的操作.在django 里面有这么一个东西--信号 下面我们就来了解了解它. 操作对象前后,django都会预留两个钩子,它是用signals.post_save.send,表示触发一个信号.所以比如说我们在操作数据库的时候,要在插入数据之前写入日志,插入完成之后也写入日志,那这个就会用到我们今天的django信号.Django中提供了“信号调度”,用于在框架执行操作时解耦

Django—内置用户权限管理

内置用户权限管理 对于注册.登录.验证等功能我们可以自己编写用户管理应用,但Django也有一个内置的用户权限管理系统.也是很强大的. 在哪可以看到? 关于用户的信息都存放在这个表中. auth模块 from django.contrib import auth 其中有几个常用的方法: authenticate() 提供了用户认证功能,即验证用户名以及密码是否正确,一般需要username .password两个关键字参数. 如果认证成功(用户名和密码正确有效),便会返回一个 User 实例对象