django使用第三方模块实现重置密码功能

菜鸟阿都
• 阅读 2465

    为大家介绍一个django开发的利器,重置密码模块:django-password-reset,使用起来非常方便,但网上的相关资料很少,本人第一次使用,遇到了坑很深,所以特意和大家分享一下。

    用django开发网站是个很方便的,并且有大量的第三方模块可以调用,django并没有内置的密码重置功能,一般网站的登陆界面都具有“忘了密码"的链接,django的密码都是加密保存的,所以当忘记了密码,就需要重置密码,按照常用的django开发步骤,需要写几个view函数,和模板页面,并需要大量的配置,但可以借用第三方模块,非常方便。

django-password-reset 的英文文档链接: http://django-password-reset.readthedocs.io/en/latest/
django使用第三方模块实现重置密码功能

上图是文档中的,安装上图操作,只能完成20%,剩下的都是深坑。第三部的是个输入表单的链接,可以将他嵌入你的登陆页面。

下载安装django-password-reset

    本人使用的是python3自带的pip安装的(本人也写了一篇关于pip的使用的文章,可以查看 http://blog.csdn.net/douzhenwen/article/details/78932074)。 大家也可以从github上下载源码,然后放在python/lib/site-packages目录下

         django-password-reset的源码结构如下:

django使用第三方模块实现重置密码功能

由于版本更迭的问题,需要将views中的第八行改为 from django.urls import reverse, reverse_lazy

然后就是配置文件中的setting

EMAIL_HOST = 'smtp.139.com'
EMAIL_HOST_USER = "iamlory@139.com"  
EMAIL_HOST_PASSWORD='*************' #密码
EMAIL_PORT = 25
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = "iamlory@139.com"
EMAIL_BACKEND= "django.core.mail.backends.smtp.EmailBackend"

有些教程将上图最后的EAMIL_BACKEND给为让在终端输出邮件命令,但不会再邮箱中收到,

即改为

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

相应的邮箱,需要配置相应邮箱服务器的端口,和服务器,139邮箱的端口为25,服务器为smtp.139.com

qq邮箱的端口好像也是25 服务器为:smtp.qq.com 由于qq邮箱发送邮件需要授权码,所以可以在网上自行搜一下,将EMAIL_HOST_PASSWORD改为16位授权码,并改变相应端口和服务器即可,建议还是使用其他邮箱。

将图一中,第三步的链接放入一个网页中,做成按钮或链接。点击后将进入发送界面: django使用第三方模块实现重置密码功能

注意一下我的搜索栏的地址,如果你不将图一中第三步的链接嵌入页面使用,也可直接使用上图中搜索栏中的地址,

记得username或email必须数据库中具有,然后点击按钮即可

然后去邮箱中,邮件中有个链接,就是重置密码的链接

点击链接,进入页面 django使用第三方模块实现重置密码功能

如果嫌弃页面和自己网站的风格不一致可在django-password-reset下的templates更改

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
菜鸟阿都 菜鸟阿都
3年前
创建免费ip代理池
     反爬技术越来越成熟,为了爬取目标数据,必须对爬虫的请求进行伪装,骗过目标系统,目标系统通过判断请求的访问频次或请求参数将疑似爬虫的ip进行封禁,要求进行安全验证,通过python的第三方库faker可以随机生成header伪装请求头,并且减缓爬虫的爬取速度,能很好的避过多数目标系统的反扒机制,但对一些安全等级
菜鸟阿都 菜鸟阿都
3年前
国内镜像大全
前言    由于许多软件以及依赖包需要从github或国外源下载,导致下载安装失败或下载速度慢是家常便饭的事,所以阿都从互联网上收集并统计了相关的镜像源,与大家分享。希望和大家一起共同丰富相关内容,阿都也会一直去维护,争取帮助到更多的同学。用法镜像中可以下载各种系统【centos、ubuntu】、软件【atom、gi
菜鸟阿都 菜鸟阿都
3年前
玩转python爬虫
    近几年来,python的热度一直特别火!大学期间,也进行了一番深入学习,毕业后也曾试图把python作为自己的职业方向,虽然没有如愿成为一名python工程师,但掌握了python,也让我现如今的工作开展和职业发展更加得心应手。这篇文章主要与大家分享一下自己在python爬虫方面的收获与见解。   
菜鸟阿都 菜鸟阿都
3年前
入职必须要问hr的3个问题
   金三银四已经过去了,阿都也在四月份成功的跳了槽,阿都是19年毕业的,虽然毕业时间不长,但阿都已经在三家公司待过了,在求职以及工作的过程中,见过许多坑,也入过很多坑。这篇文章主要分享一下面试成功后,在和hr谈待遇时,必须要问的几个问题,希望能够帮助到大家。问题1咱们公司的薪资结构是怎么样的?是不是基础工资绩效工资?&en
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Stella981 Stella981
3年前
DHCP自动获取ip地址实验
一:实验环境1.1:华为ensp软件1.2:PC机和路由器及交换机初始化状态的PC机和初始化状态的路由器,交换机二:实验过程2.1:配置设备在ensp中,将PC机和路由器及交换机按图示做成拓扑图。!DHCP自动获取ip地址实验(https://s4.51cto.com/images/blog/202005/2
Stella981 Stella981
3年前
CSS实现文字两端对齐
最近的项目遇到了这样的需求:(要求标题部分不管文字多少,都必须两端对齐)如下图:!(https://oscimg.oschina.net/oscnet/6e151291c0c55e2a231d00ec198d6c5be11.png)当时也没有多想直接使用‘ ’进行代替,毕竟产品同学想快一点看到效果,不敢怠慢!不过到第二个页面就傻眼了
菜鸟阿都
菜鸟阿都
Lv1
男 · java程序员
不想脱发的菜鸟程序猿,微信公众号【菜鸟阿都】
文章
19
粉丝
2
获赞
9