1、前言

本节内容是在以下环境中实现的。

python version: 3.7

Django version: 3.1.1

Django-registration version: 3.1.1

如版本不一致,可能导致配置内容不兼容而造成不能正常运行。

2、安装与配置

安装比较简单,可以在自己的虚拟环境中执行:

pip install django-registration

上面的框架安装完毕后,只要做一些设置以及修正,就可以让用户自行在网站上注册,并通过电子邮件启用自己的帐号,一切均自动化进行,不需要网站管理员另外执行操作。(当然也可以做定制。当前以学习框架为主,不做定制)

2.1 在settings.py中进行的配置

INSTALLED_APPS中加上

'django_registration',

其他的配置有:

# 指定激活码的有效期
ACCOUNT_ACTIVATION_DAYS = 5 # Test mail functionality by printing mails to console: 配置将邮件内容显示在终端
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' # To send the mail to your email 下面是配置发送邮件到邮箱(以新浪邮箱为例)
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.sina.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = 'xxxxxxsina.com'
EMAIL_HOST_PASSWORD = 'XXXXXXXXXX' # !!!这个是邮箱的授权码,而不是用户的密码!!!
DEFAULT_FROM_EMAIL = 'xxxxxx@sina.com'
EMAIL_USE_SSL = True

2.2 在urls.py中的配置

urls.pyurlpatterns内加上以下设置:

    path(r'accounts/', include('django_registration.backends.activation.urls')),
path(r'accounts/', include('django.contrib.auth.urls')),

2.3 建立django-registration需要的模板

django-registration使用的模板必须放在templates/django_registration文件夹下。需要的模板和文本文件如下表。

模板或文件名

用途

registration_form.html 显示注册窗体的网页,默认使用form变量作为窗体各字段的内容
registration_complete.html 填写完注册信息后,单击“提交”按钮后显示的信息页面
activation_complete.html 当帐号完成启用(激活)时显示的页面
activate.html 当帐号启用(激活)失败时显示的页面
activation_email_body.txt 在发送启用(激活)电子邮件时使用的邮件内容
activation_email_subject.txt 在发送启用(激活)电子邮件时的邮件主题

其中后面两个txt是纯文本文件,分别是邮件内容和邮件主题。

activation_email_body.txt的内容示例如下:

用户: {{ user }}

请点击链接(或拷贝到浏览器地址栏内):

http://{{site}}/accounts/activate/{{activation_key}}

激活链接将在{{ expiration_days }}内有效。

其它的html文件的内容,可以根据自己的需要来编写。

关于django-registration的官方文档,可以在 https://django-registration.readthedocs.io/en/3.1.1/index.html  查看。

使用django_registration框架实现用户的注册与激活的更多相关文章

  1. vue新手入门之使用vue框架搭建用户登录注册案例,手动搭建webpack+Vue项目(附源码,图文详解,亲测有效)

    前言 本篇随笔主要写了手动搭建一个webpack+Vue项目,掌握相关loader的安装与使用,包括css-loader.style-loader.vue-loader.url-loader.sass ...

  2. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(五)——实现注册功能

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  3. Java基础知识强化之集合框架笔记37:用户登录注册案例

    1. 登录注册案例分析图解: 2. 用户登录案例 详细分析 和 分包实现: (1)用户登录案例详细分析(面向对象思想) 按照如下的操作,可以让我们更符合面向对象思想: • 有哪些类呢?         ...

  4. 用户登陆注册【JDBC版】

    前言 在讲解Web开发模式的时候,曾经写过XML版的用户登陆注册案例!现在在原有的项目上,使用数据库版来完成用户的登陆注册!如果不了解的朋友,可以看看我Web开发模式的博文! 本来使用的是XML文件作 ...

  5. Java Spring+Mysql+Mybatis 实现用户登录注册功能

    前言: 最近在学习Java的编程,前辈让我写一个包含数据库和前端的用户登录功能,通过看博客等我先是写了一个最基础的servlet+jsp,再到后来开始用maven进行编程,最终的完成版是一个 Spri ...

  6. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(四)——对 run.py 的调整

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  7. day14(编码实战-用户登录注册)

    day14 案例:用户注册登录 要求:3层框架,使用验证码   功能分析 注册 登录   1.1 JSP页面 regist.jsp 注册表单:用户输入注册信息: 回显错误信息:当注册失败时,显示错误信 ...

  8. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  9. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

随机推荐

  1. vue2.0 双向绑定原理分析及简单实现

    Vue用了有一段时间了,每当有人问到Vue双向绑定是怎么回事的时候,总是不能给大家解释的很清楚,正好最近有时间把它梳理一下,让自己理解的更清楚,下次有人问我的时候,可以侃侃而谈. 一.首先介绍Obje ...

  2. 《深入理解java虚拟机》读书笔记-第二章Java内存区域和内存溢出异常

    java1.7和java8的jvm存在差异,本文先按照<深入理解java虚拟机>的讲解内容总结,并将java8的改变作为附录放在文末 一丶运行时数据区域 ​ 图:java虚拟机运行时数据区 ...

  3. STC8H开发(十三): I2C驱动DS3231高精度实时时钟芯片

    目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...

  4. ShardingSphere 云上实践:开箱即用的 ShardingSphere-Proxy 集群

    本次 Apache ShardingSphere 5.1.2 版本更新为大家带来了三大全新功能,其中之一即为使用 ShardingSphere-Proxy chart 在云环境中快速部署一套 Shar ...

  5. gpg加解密异常

    在本地windows电脑和开发环境(linux) ,都不报错,但是在测试环境(linux) 上报错. 报错信息 org.bouncycastle.openpgp.PGPException: Excep ...

  6. dense_rank()和rank() 窗口函数 mysql

    dense_rank()的语法 DENSE_RANK() OVER ( PARTITION BY <expression>[{,<expression>...}] ORDER ...

  7. AtCoder Beginner Contest 248 E - K-colinear Line // 计算几何

    原题链接:E - K-colinear Line (atcoder.jp) 题意: 给出直角坐标系上N个点(N <= 300),求经过这些点中至少K个点的直线数量,若有无穷多条,则输出" ...

  8. 西文字符与中文GBK编码的区别

    一般来讲二者读取的时候西文字符的数值是正,而中文字符的数值是负的,此时读取的是中文字符的前一半,需要再读取一个char类型的数据,在大多数运行环境下这个规则都是用. ps:转自算法竞赛的笔记,要注意在 ...

  9. ShardingSphere数据库读写分离

    码农在囧途 最近这段时间来经历了太多东西,无论是个人的压力还是个人和团队失误所带来的损失,都太多,被骂了很多,也被检讨,甚至一些不方便说的东西都经历了,不过还好,一切都得到了解决,无论好坏,这对于个人 ...

  10. 表单中设置了 `keyup.enter.native` 的按键事件,但是回车后没有执行查询,反而会刷新页面

    场景 添加属性对话框中,input输入后点击 enter,不会执行绑定的 handleDialogQuery 事件,反而会刷新整个页面: 如果不点击 enter,点击搜索按钮,则是正常的. 又测试:在 ...