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编写一个简单的FUSE文件系统的教程
Apr 02 Python
Python编程中使用Pillow来处理图像的基础教程
Nov 20 Python
Python实现HTTP协议下的文件下载方法总结
Apr 20 Python
python学习之面向对象【入门初级篇】
Jan 21 Python
python简单图片操作:打开\显示\保存图像方法介绍
Nov 23 Python
详解PyTorch批训练及优化器比较
Apr 28 Python
Python 3 实现定义跨模块的全局变量和使用教程
Jul 07 Python
Python实用库 PrettyTable 学习笔记
Aug 06 Python
django基于restframework的CBV封装详解
Aug 08 Python
使用OpenCV实现仿射变换—缩放功能
Aug 29 Python
python3中利用filter函数输出小于某个数的所有回文数实例
Nov 24 Python
Python使用docx模块实现刷题功能代码
Feb 13 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/04 冲泡冲煮
怎样使用php与jquery设置和读取cookies
2013/08/08 PHP
PHP的password_hash()使用实例
2014/03/17 PHP
前端必学之PHP语法基础
2016/01/01 PHP
php错误日志简单配置方法
2016/07/11 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
PHP使用file_get_contents发送http请求功能简单示例
2018/04/29 PHP
jQuery UI的Dialog无法提交问题的解决方法
2011/01/11 Javascript
Dom 学习总结以及实例的使用介绍
2013/04/24 Javascript
js实现连续英文字符自动换行兼容ie6 ie7和firefox
2013/09/06 Javascript
如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)
2016/02/23 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
jQuery简单实现遍历单选框的方法
2017/03/06 Javascript
JS触摸与手势事件详解
2017/05/09 Javascript
Angular.js实现动态加载组件详解
2017/05/28 Javascript
手把手教你把nodejs部署到linux上跑出hello world
2017/06/19 NodeJs
Node.js微信 access_token ( jsapi_ticket ) 存取与刷新的示例
2017/09/30 Javascript
微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】
2017/12/05 Javascript
快速处理vue渲染前的显示问题
2018/03/05 Javascript
python使用pil生成缩略图的方法
2015/03/26 Python
python访问类中docstring注释的实现方法
2015/05/04 Python
python实现比较两段文本不同之处的方法
2015/05/30 Python
python的re正则表达式实例代码
2018/01/24 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
Jupyter Notebook折叠输出的内容实例
2020/04/22 Python
详解Sticky Footer 绝对底部的两种套路
2017/11/03 HTML / CSS
五个2015 年最佳HTML5 框架
2015/11/11 HTML / CSS
全球最大的跑步用品商店:Road Runner Sports
2016/09/11 全球购物
英国名牌男装店:Standout
2021/02/17 全球购物
普师专业个人自荐信范文
2013/11/26 职场文书
锦旗赠语
2015/06/23 职场文书
宣传稿格式范文
2015/07/23 职场文书
2015年市场营销工作总结
2015/07/23 职场文书
2016年少先队活动总结
2016/04/06 职场文书
python全面解析接口返回数据
2022/02/12 Python
Java存储没有重复元素的数组
2022/04/29 Java/Android