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封装shell命令实例分析
May 05 Python
深入解析Python中的lambda表达式的用法
Aug 28 Python
Python网络爬虫出现乱码问题的解决方法
Jan 05 Python
基于Python3.6+splinter实现自动抢火车票
Sep 25 Python
python 实现图片旋转 上下左右 180度旋转的示例
Jan 24 Python
在numpy矩阵中令小于0的元素改为0的实例
Jan 26 Python
详解Python给照片换底色(蓝底换红底)
Mar 22 Python
利用pyinstaller打包exe文件的基本教程
May 02 Python
利用pyuic5将ui文件转换为py文件的方法
Jun 19 Python
Python3将数据保存为txt文件的方法
Sep 12 Python
python-web根据元素属性进行定位的方法
Dec 13 Python
Python列表的深复制和浅复制示例详解
Feb 12 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 配置open_basedir 让各虚拟站点独立运行
2009/11/12 PHP
PHP APC的安装与使用详解
2013/06/13 PHP
PHP解析html类库simple_html_dom的转码bug
2014/05/22 PHP
Php连接及读取和写入mysql数据库的常用代码
2014/08/11 PHP
php中header跳转使用include包含解决参数丢失问题
2015/05/08 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
Jquery插件写法笔记整理
2012/09/06 Javascript
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
2013/04/26 Javascript
jquery如何获取复选框的值
2013/12/12 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
《javascript少儿编程》location术语总结
2018/05/27 Javascript
详解微信小程序input标签正则初体验
2018/08/18 Javascript
vue服务端渲染添加缓存的方法
2018/09/18 Javascript
浅谈React Native 传参的几种方式(小结)
2019/05/21 Javascript
python获取网页状态码示例
2014/03/30 Python
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
完美解决Python 2.7不能正常使用pip install的问题
2018/06/12 Python
分享Python切分字符串的一个不错方法
2018/12/14 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
纯CSS3实现移动端展开和收起效果的示例代码
2020/04/26 HTML / CSS
国外平面设计素材网站:The Hungry JPEG
2017/03/28 全球购物
小女主人连衣裙:Little Mistress
2017/07/10 全球购物
巴基斯坦购物网站:Goto
2019/03/11 全球购物
线程同步的方法
2016/11/23 面试题
计算机专业自我鉴定
2013/10/15 职场文书
理货员的岗位职责
2013/11/23 职场文书
小学教师师德师风演讲稿
2014/08/22 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
学生逃课万能检讨书2000字
2015/02/17 职场文书
《叶问2》观后感
2015/06/15 职场文书
先进党支部事迹材料2016
2016/02/26 职场文书