使用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