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迭代器与生成器详解
Mar 10 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
Jun 07 Python
关于反爬虫的一些简单总结
Dec 13 Python
Python 字符串与二进制串的相互转换示例
Jul 23 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
Oct 17 Python
神经网络相关之基础概念的讲解
Dec 29 Python
python中PS 图像调整算法原理之亮度调整
Jun 28 Python
python修改字典键(key)的方法
Aug 05 Python
Python测试Kafka集群(pykafka)实例
Dec 23 Python
完美解决keras保存好的model不能成功加载问题
Jun 11 Python
基于python实现复制文件并重命名
Sep 16 Python
python 基于selenium实现鼠标拖拽功能
Dec 24 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 高手之路(二)
2006/10/09 PHP
模拟SQLSERVER的两个函数:dateadd(),datediff()
2006/10/09 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
PHP命令空间namespace及use的用法小结
2017/11/27 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
Js基础学习资料
2010/11/23 Javascript
有关于JS构造函数的重载和工厂方法
2013/04/07 Javascript
JavaScript事件委托技术实例分析
2015/02/06 Javascript
javascript实现动态标签云
2015/10/16 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
2016/04/12 Javascript
assert()函数用法总结(推荐)
2017/01/25 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
2017/02/15 Javascript
分享十三个最佳JavaScript数据网格库
2017/04/07 Javascript
详解AngularJS跨页面传值(ui-router)
2017/08/23 Javascript
简述Angular 5 快速入门
2017/11/04 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
[39:21]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.24
2019/09/10 DOTA
进一步了解Python中的XML 工具
2015/04/13 Python
python实现多线程的两种方式
2016/05/22 Python
简单谈谈Python流程控制语句
2016/12/04 Python
Python单例模式的两种实现方法
2017/08/14 Python
详解Django+uwsgi+Nginx上线最佳实战
2019/03/14 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
Python实现区域填充的示例代码
2021/02/03 Python
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
塑料制成的可水洗的编织平底鞋和鞋子:Rothy’s
2018/09/16 全球购物
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
英国领先的在线旅游和休闲零售商:lastminute.com
2019/01/23 全球购物
SQL Server面试题
2016/10/17 面试题
学期自我鉴定
2013/11/04 职场文书
激励口号大全
2014/06/17 职场文书
介绍信格式
2015/01/30 职场文书
网络研修随笔感言
2015/11/18 职场文书