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在hadoop上跑起来
Jan 27 Python
python实现树形打印目录结构
Mar 29 Python
Python-OpenCV基本操作方法详解
Apr 02 Python
Flask之flask-script模块使用
Jul 26 Python
记一次python 内存泄漏问题及解决过程
Nov 29 Python
浅谈Python中的全局锁(GIL)问题
Jan 11 Python
python之mock模块基本使用方法详解
Jun 27 Python
使用python socket分发大文件的实现方法
Jul 08 Python
详解Python打包分发工具setuptools
Aug 05 Python
Python实现发票自动校核微信机器人的方法
May 22 Python
经验丰富程序员才知道的8种高级Python技巧
Jul 27 Python
浅析python 通⽤爬⾍和聚焦爬⾍
Sep 28 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
PHPMailer 中文使用说明小结
2010/01/22 PHP
php生成图形(Libchart)实例
2013/11/06 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
Javascript中的变量使用说明
2010/05/18 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
2013/11/18 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
AngularJS的表单使用详解
2015/06/17 Javascript
jQuery soColorPacker 网页拾色器
2016/06/22 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
angularjs $http调用接口的方式详解
2018/08/13 Javascript
layui输入框只允许输入中文且判断长度的例子
2019/09/18 Javascript
javscript 数组扁平化的实现
2020/02/03 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
2020/09/21 Javascript
antd-日历组件,前后禁止选择,只能选中间一部分的实例
2020/10/29 Javascript
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
详解Python函数作用域的LEGB顺序
2016/05/14 Python
Python使用wxPython实现计算器
2018/01/30 Python
pycharm配置git(图文教程)
2019/08/16 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
2020/06/28 Python
Visual Studio Code搭建django项目的方法步骤
2020/09/17 Python
Claire’s法国:时尚配饰、美容、珠宝、头发
2021/01/16 全球购物
金融专业毕业生推荐信
2013/11/26 职场文书
大学校务公开实施方案
2014/03/31 职场文书
个人合作协议书范本
2014/04/18 职场文书
2014年党的群众路线教育实践活动总结
2014/04/25 职场文书
动画设计系毕业生求职信
2014/07/15 职场文书
青年文明号申报材料
2014/12/23 职场文书
入党转正申请书范文
2019/05/20 职场文书
2019销售早会主持词
2019/06/27 职场文书
七年级作文之我的梦想
2019/10/16 职场文书
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python