使用django_registration框架实现用户的注册与激活


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  查看。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM