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 文件和输入输出小结
Oct 09 Python
Python实现Const详解
Jan 27 Python
python获取当前计算机cpu数量的方法
Apr 18 Python
使用Python的urllib和urllib2模块制作爬虫的实例教程
Jan 20 Python
利用Python生成文件md5校验值函数的方法
Jan 10 Python
Python测试人员需要掌握的知识
Feb 08 Python
TensorFlow变量管理详解
Mar 10 Python
Python3.5局部变量与全局变量作用域实例分析
Apr 30 Python
PyQt5创建一个新窗口的实例
Jun 20 Python
libreoffice python 操作word及excel文档的方法
Jul 04 Python
Python实现Selenium自动化Page模式
Jul 14 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
Nov 26 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
php上传图片类及用法示例
2016/05/11 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
php依赖注入知识点详解
2019/09/23 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
JavaScript中Array 对象相关的几个方法
2006/12/22 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
简单常用的幻灯片播放实现代码
2013/09/25 Javascript
JavaScript中匿名函数用法实例
2015/03/23 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
使用express获取微信小程序二维码小记
2019/05/21 Javascript
js使用文档就绪函数动态改变页面内容示例【innerHTML、innerText】
2019/11/07 Javascript
js实现列表向上无限滚动
2020/01/13 Javascript
[28:57]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/16 DOTA
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
django实现前后台交互实例
2017/08/07 Python
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
python学习教程之使用py2exe打包
2017/09/24 Python
python enumerate函数的使用方法总结
2017/11/15 Python
python学习入门细节知识点
2018/03/29 Python
PyQt打开保存对话框的方法和使用详解
2019/02/27 Python
Python基本数据结构与用法详解【列表、元组、集合、字典】
2019/03/23 Python
python opencv实现证件照换底功能
2019/08/19 Python
python中bytes和str类型的区别
2019/10/21 Python
在Python中预先初始化列表内容和长度的实现
2019/11/28 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
2020/12/24 Python
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
为中国消费者甄选天下优品:网易严选
2016/08/11 全球购物
告诉你怎样写创业计划书
2014/01/27 职场文书
给校长的建议书600字
2014/05/15 职场文书
四风问题民主生活会对照检查材料思想汇报
2014/09/27 职场文书
幼儿园园长新年寄语
2015/08/17 职场文书
2019年年中工作总结讲话稿模板
2019/03/25 职场文书
pytorch中的model=model.to(device)使用说明
2021/05/24 Python
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL