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.py
中urlpatterns
内加上以下设置:
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 查看。