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 相关文章推荐
在Gnumeric下使用Python脚本操作表格的教程
Apr 14 Python
Python发送form-data请求及拼接form-data内容的方法
Mar 05 Python
Python读大数据txt
Mar 28 Python
python自带的http模块详解
Nov 06 Python
TensorFlow实现Batch Normalization
Mar 08 Python
python基础教程项目五之虚拟茶话会
Apr 02 Python
python3安装speech语音模块的方法
Dec 24 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
May 13 Python
flask的orm框架SQLAlchemy查询实现解析
Dec 12 Python
python如何把字符串类型list转换成list
Feb 18 Python
Python使用socketServer包搭建简易服务器过程详解
Jun 12 Python
python中pycryto实现数据加密
Apr 29 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出现Cannot modify header information问题的解决方法大全
2008/04/09 PHP
PHP 文件上传功能实现代码
2009/06/24 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
2014/12/22 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
PHP7常量数组用法分析
2016/09/26 PHP
php中static和const关键字用法分析
2016/12/07 PHP
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
javascript 鼠标滚轮事件
2009/04/09 Javascript
基于jquery的动态创建表格的插件
2011/04/05 Javascript
js多级树形弹出一个小窗口层(非常好用)实例代码
2013/03/19 Javascript
选择复选框按钮置灰否则按钮可用
2014/05/22 Javascript
功能强大的Bootstrap使用手册(一)
2016/08/02 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
信息滚动效果的实例讲解
2017/09/18 Javascript
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
基于vue的验证码组件的示例代码
2019/01/22 Javascript
微信小程序如何获取用户头像和昵称
2019/09/23 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
python杀死一个线程的方法
2015/09/06 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
从0开始的Python学习014面向对象编程(推荐)
2019/04/02 Python
python数据归一化及三种方法详解
2019/08/06 Python
深入浅析python变量加逗号,的含义
2020/02/22 Python
python实现简单学生信息管理系统
2020/04/09 Python
python实现一次性封装多条sql语句(begin end)
2020/06/06 Python
Django URL参数Template反向解析
2020/11/24 Python
详解HTML5新增标签
2017/11/27 HTML / CSS
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
英国首屈一指的票务公司:See Tickets
2019/05/11 全球购物
学院领导推荐信
2013/10/30 职场文书
培训演讲稿范文
2014/01/12 职场文书
信仰心得体会
2014/09/05 职场文书
2014年文员工作总结
2014/11/18 职场文书
人事主管岗位职责
2015/02/04 职场文书
早恋主题班会
2015/08/14 职场文书
Angular性能优化之第三方组件和懒加载技术
2021/05/10 Javascript