Django如何实现网站注册用户邮箱验证功能
作者:希希里之海 发布时间:2023-05-14 08:03:08
我们在很多网站上都可以看到用户注册使用电子邮件激活或启用的方式。也就是说,用户在注册后填写正确的电子邮件地址,接着网站会发送一封启用电子邮件到用户设置的电子邮件的邮箱中,并在邮件中提供一个激活或启用的链接,在用户单击此链接后,账号正式激活或启用。
这里我们使用 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 文件夹下。
registration_form.html : 显示注册窗体的网页,默认使用 form 变量作为窗体各字段的内容
registration_complete.html : 填写完注册窗体,单击“提交”按钮后显示的信息页面
activation_complete.html : 当账号顺利完成启用时会显示的页面
activate.html : 当账号启用失败时会显示的页面
activation_email.txt : 在发送启用邮件时使用的邮件内容
activation_email_subject.txt : 在发送启用邮件时使用的邮件主题
注意:由于 django-registration 会使用到 电子邮件发送功能,因此应该先设置好 Django 的电子邮件收发功能,可以使用 mailgun 来进行电子邮件收发。
相关设置参考 https://www.jb51.net/article/167669.htm
至此,我们便完成了 djano-registration 相关设置,点击注册,填写信息后,便在邮箱中收到网站的验证邮件信息。
来源:https://www.cnblogs.com/weixuqin/p/9317168.html


猜你喜欢
- 最近做了wap站中的搜索结果页的改版,记录一下关于锚点链接的心得~关于锚点链接锚点链接一般用于比较长的网页,使用内部链接建立页内目录。单击目
- 本文实例讲述了gearman+mysql方式实现持久化操作。分享给大家供大家参考,具体如下:1、为什么要持久化?gearman的job se
- 图像轮廓概念轮廓是一系列相连的点组成的曲线,代表了物体的基本外形。谈起轮廓不免想到边缘,它们确实很像。简单的说,轮廓是连续的,边缘并不全都连
- 故障描述percona5.6,mysqldump全备份,导入备份数据时报错Duplicate entry 'hoc_log99-it
- YOLO是You-Only-Look-Once的缩写,它无疑是根据COCO数据集训练的最好的对象检测器之一。YOLOv4是最新的迭代版本,它
- 解析接口返回数据1、把json格式的数据转换成单个{key,value}的形式,并把每个dict存入listdef parse(self,d
- 写在之前围绕类的话题,说是说不完的,仅在特殊方法,除了我们在前面遇到过的 __init__(),__new__(),__str__() 等之
- 大家好,我是安果!目前公司使用 Jira 作为项目管理工具,在每一次迭代完成后的复盘会上,我们都需要针对本次迭代的&nb
- 1. # 可以使用LaTeX表示数学公式# 可以使用LaTeX表示数学公式from IPython.display import Latex
- <% a="福建是中国的一个省|我们美丽中国的武夷山!" b="中国,我们,武夷山,福建,美国,苹果&q
- 导读本篇博客我们将全面了解 Flask 中关于请求的相关设置,开始前你需要先配置 Flask 的基础框架。from flask import
- 这份数据集来源于Kaggle,数据集有12500只猫和12500只狗。在这里简单介绍下整体思路处理数据设计神经网络进行训练测试1. 数据处理
- 上一章节我们学习了基础的定义 PPT 的方法以及每一页中的样式,这节课我们将真正的在 PPT 中添加内容,学习一下 pptx 的段落的使用。
- QMainWindowQMainWindow类中比较重要的方法方法描述addToolBar()添加工具栏centralWidge()返回窗口
- 本文实例讲述了python去除所有html标签的方法。分享给大家供大家参考。具体分析如下:这段代码可以用于去除文本里的字符串标签,不包括标签
- 元编程,一个听起来特别酷的词,强大的Lisp在这方面是好手,对于Python,尽管没有完善的元编程范式,一些天才的开发者还是创作了很多元编程
- 要求利用python实现禁用键盘鼠标思路经过查阅资料目前最好的办法是采用ctypes中的dll文件进行编写from ctypes impor
- 在进行keras 网络计算时,有时候需要获取输入张量的维度来定义自己的层。但是由于keras是一个封闭的接口。因此在调用由于是张量不能直接用
- 1 自动微分我们在《数值分析》课程中已经学过许多经典的数值微分方法。许多经典的数值微分算法非常快,因为它们只需要计算差商。然而,他们的主要缺
- 任务背景:调用API接口数据,抽取我们所需类型的数据,并写入指定mysql数据库。先从宏观上看这个任务,并对任务进行分解:step1:需要学