Django如何实现网站注册用户邮箱验证功能


Posted in Python onAugust 14, 2019

我们在很多网站上都可以看到用户注册使用电子邮件激活或启用的方式。也就是说,用户在注册后填写正确的电子邮件地址,接着网站会发送一封启用电子邮件到用户设置的电子邮件的邮箱中,并在邮件中提供一个激活或启用的链接,在用户单击此链接后,账号正式激活或启用。

这里我们使用 Django 的 django-registration 模块可以快速实现这一过程。

1. django-registration 安装与设置

使用 pip 安装:

pip install django-registration

此模块暂时还不支持 Django2.0 以上版本,建议使用2.0以下版本安装使用。

将 registration 添加到 Django 项目设置 settings.py 中的 INSTALLED_APPS 中去,然后在 settings.py 中设置一个常数,用来指定启用码的天数。

INSTALLED_APPS = (
  'django.contrib.sites',
  'registration', #should be immediately above 'django.contrib.admin'
  'django.contrib.admin',
  # ...other installed applications...
)
ACCOUNT_ACTIVATION_DAYS = 7 # One-week activation window; you may, of course, use a different value.

运行 python manage.py migrate 以安装默认设置使用的模型。为了使模板正常工作,registration 必须出现在django.contrib.admin上方。

使用标准自定义网址,在 url.py 中添加一行设置:

url(r'^accounts/', include('registration.backends.default.urls')),

任何指定到 /accounts/的网址,都会被送到 registration 检查是否有符合的项。然后用户可以通过 /accounts/register/ 注册, 通过 /accounts/login/ 登录(当用户已注册后)等等。

2.建立 django-registration 所需的模板

当用户单击“注册”按钮后,django-registration 就会开始调用一连串的模板以及相关文本文件,这些是我们需要自己写的。所有的模板都必须放在 templates 目录下的 registration 文件夹下。

Django如何实现网站注册用户邮箱验证功能

registration_form.html : 显示注册窗体的网页,默认使用 form 变量作为窗体各字段的内容

registration_complete.html : 填写完注册窗体,单击“提交”按钮后显示的信息页面

activation_complete.html : 当账号顺利完成启用时会显示的页面

activate.html : 当账号启用失败时会显示的页面

activation_email.txt : 在发送启用邮件时使用的邮件内容

activation_email_subject.txt : 在发送启用邮件时使用的邮件主题

注意:由于 django-registration 会使用到 电子邮件发送功能,因此应该先设置好 Django 的电子邮件收发功能,可以使用 mailgun 来进行电子邮件收发。

相关设置参考 https://3water.com/article/167669.htm

至此,我们便完成了 djano-registration 相关设置,点击注册,填写信息后,便在邮箱中收到网站的验证邮件信息。

Django如何实现网站注册用户邮箱验证功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python脚本实现统计日志文件中的ip访问次数代码分享
Aug 06 Python
OpenCV-Python实现轮廓检测实例分析
Jan 05 Python
解决python中使用plot画图,图不显示的问题
Jul 04 Python
Python读取系统文件夹内所有文件并统计数量的方法
Oct 23 Python
使用Python Pandas处理亿级数据的方法
Jun 24 Python
numpy 返回函数的上三角矩阵实例
Nov 25 Python
python plotly画柱状图代码实例
Dec 13 Python
基于Django signals 信号作用及用法详解
Mar 28 Python
python实现飞船大战
Apr 24 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
Mar 02 Python
linux中nohup和后台运行进程查看及终止
Jun 24 Python
分位数回归模型quantile regeression应用详解及示例教程
Nov 02 Python
python 叠加等边三角形的绘制的实现
Aug 14 #Python
Django为窗体加上防机器人的验证码功能过程解析
Aug 14 #Python
Python 利用高德地图api实现经纬度与地址的批量转换
Aug 14 #Python
Django如何使用第三方服务发送电子邮件
Aug 14 #Python
Python3 chardet模块查看编码格式的例子
Aug 14 #Python
Python 从subprocess运行的子进程中实时获取输出的例子
Aug 14 #Python
python3调用windows dos命令的例子
Aug 14 #Python
You might like
sql注入与转义的php函数代码
2013/06/17 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
php+ajax注册实时验证功能
2016/07/20 PHP
php判断是否为ajax请求的方法
2016/11/29 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
2019/04/10 PHP
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
ExtJS扩展 垂直tabLayout实现代码
2009/06/21 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
vue插件vue-resource的使用笔记(小结)
2017/08/04 Javascript
看看“疫苗查询”小程序有温度的代码
2018/07/31 Javascript
vue 属性拦截实现双向绑定的实例代码
2018/10/24 Javascript
vue中的双向数据绑定原理与常见操作技巧详解
2020/03/16 Javascript
原生JS实现留言板
2020/03/26 Javascript
JS实现手写 forEach算法示例
2020/04/29 Javascript
python循环监控远程端口的方法
2015/03/14 Python
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
Python中的迭代器与生成器高级用法解析
2016/06/28 Python
Python中动态创建类实例的方法
2017/03/24 Python
分析python切片原理和方法
2017/12/19 Python
Numpy的简单用法小结
2019/08/28 Python
在pycharm中配置Anaconda以及pip源配置详解
2019/09/09 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
2020/02/26 Python
html5教你做炫酷的碎片式图片切换 (canvas)
2017/07/28 HTML / CSS
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
英国综合网上购物商城:The Hut
2018/07/03 全球购物
简述数据库的设计过程
2015/06/22 面试题
大学生入党自我鉴定
2013/10/31 职场文书
特色冷饮店创业计划书
2014/01/28 职场文书
药品促销活动方案
2014/02/14 职场文书
关于读书的演讲稿600字
2014/08/27 职场文书
借条如何写
2015/05/26 职场文书
《搭石》教学反思
2016/02/18 职场文书
python 下划线的多种应用场景总结
2021/05/12 Python
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python
vue使用wavesurfer.js解决音频可视化播放问题
2022/04/04 Vue.js