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