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检测网站链接是否已存在
Apr 07 Python
python机器学习理论与实战(二)决策树
Jan 19 Python
Python Unittest自动化单元测试框架详解
Apr 04 Python
Python Web编程之WSGI协议简介
Jul 18 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
Jun 24 Python
PyCharm的设置方法和第一个Python程序的建立
Jan 16 Python
python实现飞机大战游戏
Oct 26 Python
python sklearn库实现简单逻辑回归的实例代码
Jul 01 Python
解决django中ModelForm多表单组合的问题
Jul 18 Python
浅谈Python项目的服务器部署
Apr 25 Python
Python爬取某拍短视频
Jun 11 Python
python开发的自动化运维工具ansible详解
Aug 07 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
香妃
2021/03/03 冲泡冲煮
PHP中Date获取时间不正确怎么办
2008/06/05 PHP
php截取字符串并保留完整xml标签的函数代码
2013/02/06 PHP
基于php验证码函数的使用示例
2013/05/03 PHP
使用PHP实现蜘蛛访问日志统计
2013/07/05 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
js prototype 格式化数字 By shawl.qiu
2007/04/02 Javascript
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
[JSF]使用DataModel处理表行事件的实例代码
2013/08/05 Javascript
JS Date函数整理方便使用
2013/10/23 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
jQuery实现倒计时按钮功能代码分享
2014/09/03 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
获取select的value、text值的简单示例(jquery与javascript)
2016/12/07 Javascript
vue服务端渲染的实例代码
2017/08/28 Javascript
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
2017/09/20 jQuery
vue-quill-editor的使用及个性化定制操作
2020/08/04 Javascript
electron踩坑之dialog中的callback解决
2020/10/06 Javascript
python中import学习备忘笔记
2017/01/24 Python
Python单例模式实例详解
2017/03/01 Python
基于ID3决策树算法的实现(Python版)
2017/05/31 Python
CentOS中升级Python版本的方法详解
2017/07/10 Python
python re正则匹配网页中图片url地址的方法
2018/12/20 Python
详解django2中关于时间处理策略
2019/03/06 Python
python调用自定义函数的实例操作
2019/06/26 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
Python切图九宫格的实现方法
2019/10/10 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
DTD的含义以及作用
2014/01/26 面试题
毕业生求职信的经典写法
2014/01/31 职场文书
中青班党性分析材料
2014/02/16 职场文书
绿色环保口号
2014/06/12 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书
MySQL索引知识的一些小妙招总结
2021/05/10 MySQL