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之再深点,更懂list
Sep 20 Python
用Python程序抓取网页的HTML信息的一个小实例
May 02 Python
Python实现方便使用的级联进度信息实例
May 05 Python
简单的Apache+FastCGI+Django配置指南
Jul 22 Python
pandas中Timestamp类用法详解
Dec 11 Python
Python实现聊天机器人的示例代码
Jul 09 Python
Python下简易的单例模式详解
Apr 08 Python
python格式化输出保留2位小数的实现方法
Jul 02 Python
检测python爬虫时是否代理ip伪装成功的方法
Jul 12 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
Mar 23 Python
Python利用pip安装tar.gz格式的离线资源包
Sep 14 Python
python爬取招聘要求等信息实例
Nov 20 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中计算时间差的几种方法
2009/12/31 PHP
PHP 引用文件技巧
2010/03/02 PHP
php简单实现批量上传图片的方法
2016/05/09 PHP
escape、encodeURI、encodeURIComponent等方法的区别比较
2006/12/27 Javascript
JS宝典学习笔记(下)
2007/01/10 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
2011/06/28 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
2013/09/02 Javascript
js时间戳格式化成日期格式的多种方法
2013/11/11 Javascript
JavaScript获取页面中第一个锚定文本的方法
2015/04/03 Javascript
用js编写的简单的计算器代码程序
2015/08/04 Javascript
js实现简洁大方的二级下拉菜单效果代码
2015/09/01 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
JavaScript获取select中text值的方法
2017/02/13 Javascript
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
React-router4路由监听的实现
2018/08/07 Javascript
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
vue中使用极验验证码的方法(附demo)
2019/12/04 Javascript
js实现九宫格布局效果
2020/05/28 Javascript
利用Python读取文件的四种不同方法比对
2017/05/18 Python
python OpenCV学习笔记之绘制直方图的方法
2018/02/08 Python
Python实现的线性回归算法示例【附csv文件下载】
2018/12/29 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
2019/02/19 Python
对Python 检查文件名是否规范的实例详解
2019/06/10 Python
Pytorch之parameters的使用
2019/12/31 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
.NET概念性的面试题
2012/02/29 面试题
EJB发布WEB服务一般步骤
2012/10/31 面试题
技校学生个人职业生涯规划范文
2014/03/03 职场文书
激情洋溢的毕业生就业求职信
2014/03/15 职场文书
个人德育工作总结
2015/03/05 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
2015年绩效考核工作总结
2015/05/23 职场文书
2016北大自主招生自荐信模板
2016/01/28 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
详解JavaScript中的执行上下文及调用堆栈
2021/04/29 Javascript
vue如何使用模拟的json数据查看效果
2022/03/31 Vue.js