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. 【RocketMQ】消息的存储

    Broker对消息的处理 BrokerController初始化的过程中,调用registerProcessor方法注册了处理器,在注册处理器的代码中可以看到创建了处理消息发送的处理器对象SendMe ...

  2. NC16692 [NOIP2001]求先序排列

    NC16692 [NOIP2001]求先序排列 题目 题目描述 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度 ≤ 8). 输入描述 2行,均为大写字母组成的 ...

  3. manjaro 安装后的基本配置

    第一步:设置官方镜像源 sudo pacman-mirrors -i -c China -m rank # 输入以上命令后会有弹出框,选择一个国内镜像(推荐 https://mirrors.ustc. ...

  4. Object类和Dome的新媒体类型

    Object类 所有的类都是继承自Object的 Java Object 类是所有类的父类,也就是说 Java 的所有类都继承了 Object,子类可以使用 Object 的所有方法 Object 类 ...

  5. IDEA快捷键之html篇-1

      前端IDE中Emmet插件快捷输入HTML代码 前端IDE如VSCode.Atom.Sublime Text和Intellij Idea中使用Emmet插件快捷输入HTML代码的介绍 前端IDE中 ...

  6. Solution -「树状数组」 题目集合

    T1 冒泡排序 题目描述 clj 想起当年自己刚学冒泡排序时的经历,不禁思绪万千 当年,clj 的冒泡排序(伪)代码是这样的: flag=false while (not flag): flag=tr ...

  7. highcharts图表及报表展示、导出数据

    @ 目录 前言 一.使用highcharts前后端交互展示图表,及使用报表导出 二.实现思路 1.图表可以选择echarts.highcharts,我们这里选择highcharts(echarts使用 ...

  8. word-break,word-wrap,line-break相关知识

    1.word-break: break-word与word-wrap: break-word的区别? 答:计算最小宽度(width: min-content)时有区别,word-break: brea ...

  9. 搭建一个完整的K8S集群-------基于CentOS 8系统

    创建三个centos节点: 192.168.5.141 k8s-master 192.168.5.142 k8s-nnode1 192.168.5.143 k8s-nnode2 查看centos系统版 ...

  10. k8s QoS与pod驱逐

    概述 QoS是Quality of Service的缩写,即服务质量.每个pod属于某一个QoS分类,而Kubernetes会根据pod的QoS级别来决定pod的调度.抢占调度和驱逐优先级,而且pod ...