我们在很多网站上都可以看到用户注册使用电子邮件激活或启用的方式。也就是说,用户在注册后填写正确的电子邮件地址,接着网站会发送一封启用电子邮件到用户设置的电子邮件的邮箱中,并在邮件中提供一个激活或启用的链接,在用户单击此链接后,账号正式激活或启用。

  这里我们使用 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 = # 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.cnblogs.com/weixuqin/p/9263410.html 。

至此,我们便完成了 djano-registration 相关设置,点击注册,填写信息后,便在邮箱中收到网站的验证邮件信息。

Django 实现网站注册用户邮箱验证功能的更多相关文章

  1. javamail实现邮箱验证功能

    javamail是基于SMTP协议和POP3协议的邮件发送与接收系统,在用户注册与登陆的过程中,常需要用到邮箱验证功能,下面是基于javamail的一个简单实现 用户注册后通过servlet得到邮箱地 ...

  2. discuz3.2x增加邮箱验证功能

    为防止垃圾用户多次注册,为disczu增加邮箱验证功能. 大致分为二步: 1.申请邮箱,这里推荐使用腾讯免费企业邮箱:https://exmail.qq.com/portal/introducefre ...

  3. 在Django中进行注册用户的邮件确认

    之前利用Flask写博客时(http://hbnnlove.sinaapp.com),我对注册模块的逻辑设计很简单,就是用户填写注册表单,然后提交,数据库会更新User表中的数据,字段主要有用户名,哈 ...

  4. django 开发忘记密码通过邮箱找回功能

    一.流程分析: 1.点击忘记密码====>forget.html页面,输入邮箱和验证码,发送验证链接网址的邮件====>发送成功,跳到send_success.html提示 2.到邮箱里找 ...

  5. Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能

    Android高效率编码-第三方SDK详解系列(二)--Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能 我的本意是第二篇写Mob的shareSD ...

  6. Atitit.注册跟个登录功能的实现attilax总结obo

    Atitit.注册跟个登录功能的实现attilax总结obo 1. 注册模块 2 1.1. 基本注册功能(用户名方式) 2 1.2. 动态ajax监测用户名重复 2 1.3. 注册手机验证 2 1.4 ...

  7. bmob云 实现注册和登录的功能

    向大家介绍一款我感觉非常溜的一款后端云服务bmob云 借助bmob云我们可以实现注册和登录页面的功能,下面就让我给大家演示一下借助bmob云服务实现这两个功能吧.  1. 用户是一个应用程序的核心.对 ...

  8. DEDECMS开启邮箱验证通知的解决方法

    [摘要]织梦CMS是开源内容管理系统,是国内开源CMS的领先品牌,目前程序安装量已达七十万,本文介绍DEDECMS会员注册时,开启邮箱验证通知的解决方法. 在论坛上看到很多人都说这个功能没用,邮箱根本 ...

  9. 2_MVC+EF+Autofac(dbfirst)轻型项目框架_用户权限验证

    前言 接上面两篇 0_MVC+EF+Autofac(dbfirst)轻型项目框架_基本框架 与 1_MVC+EF+Autofac(dbfirst)轻型项目框架_core层(以登陆为例) .在第一篇中介 ...

随机推荐

  1. AJAX流程 代码

    var xml =      window.XMLHttpRequest ?new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHT ...

  2. Deep Learning(深度学习)学习笔记整理系列

    http://blog.csdn.net/zouxy09/article/details/8775360 http://blog.csdn.net/zouxy09/article/details/87 ...

  3. Eclipse 控制台不显示打印信息的处理方法

    1.进windows菜单 -> show view -> console2.还是windows菜单里面 -> preferences -> 打开左边的run/debug -&g ...

  4. SpringDataRedis操作Redis简单案例

    Jedis Jedis是Redis官方推出的一款面向Java的客户端,提供了很多接口供Java语言调用.可以在Redis官网下载,当然还有一些开源爱好者提供的客户端,如Jredis.SRP等等,推荐使 ...

  5. java基础之JDBC五:批处理简单示例

    /** * 批处理 * 批处理跟事务不同 只是把一批sql放到一起执行 2条sql是可以一条执行成功 一条执行失败 是不可逆的 */ public class Test { public static ...

  6. less使用变量实现Url的前缀

    @url-prefix: "../../../../../Skin/Template/Default"; .test { background: url("@{url-p ...

  7. mfs教程(三)

    mfs文件系统(三) 使用  MooseFS 一.挂载文件系统 启动管理服务器(master server)和数据服务器(chunkservers) (chunkservers一个是必需的,但至少两个 ...

  8. 557. Reverse Words in a String III 翻转句子中的每一个单词

    [抄题]: Given a string, you need to reverse the order of characters in each word within a sentence whi ...

  9. Service和IntentService的区别

    不知道大家有没有和我一样,以前做项目或者练习的时候一直都是用Service来处理后台耗时操作,却很少注意到还有个IntentService,前段时间准备面试的时候看到了一篇关于IntentServic ...

  10. https抓包