溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django如何實現(xiàn)網(wǎng)站注冊用戶郵箱驗證功能

發(fā)布時間:2020-10-09 21:13:34 來源:腳本之家 閱讀:160 作者:希希里之海 欄目:開發(fā)技術

我們在很多網(wǎng)站上都可以看到用戶注冊使用電子郵件激活或啟用的方式。也就是說,用戶在注冊后填寫正確的電子郵件地址,接著網(wǎng)站會發(fā)送一封啟用電子郵件到用戶設置的電子郵件的郵箱中,并在郵件中提供一個激活或啟用的鏈接,在用戶單擊此鏈接后,賬號正式激活或啟用。

這里我們使用 Django 的 django-registration 模塊可以快速實現(xiàn)這一過程。

1. django-registration 安裝與設置

使用 pip 安裝:

pip install django-registration

此模塊暫時還不支持 Django2.0 以上版本,建議使用2.0以下版本安裝使用。

將 registration 添加到 Django 項目設置 settings.py 中的 INSTALLED_APPS 中去,然后在 settings.py 中設置一個常數(shù),用來指定啟用碼的天數(shù)。

INSTALLED_APPS = (
  'django.contrib.sites',
  'registration', #should be immediately above 'django.contrib.admin'
  'django.contrib.admin',
  # ...other installed applications...
)
ACCOUNT_ACTIVATION_DAYS = 7 # One-week activation window; you may, of course, use a different value.

運行 python manage.py migrate 以安裝默認設置使用的模型。為了使模板正常工作,registration 必須出現(xiàn)在django.contrib.admin上方。

使用標準自定義網(wǎng)址,在 url.py 中添加一行設置:

url(r'^accounts/', include('registration.backends.default.urls')),

任何指定到 /accounts/的網(wǎng)址,都會被送到 registration 檢查是否有符合的項。然后用戶可以通過 /accounts/register/ 注冊, 通過 /accounts/login/ 登錄(當用戶已注冊后)等等。

2.建立 django-registration 所需的模板

當用戶單擊“注冊”按鈕后,django-registration 就會開始調(diào)用一連串的模板以及相關文本文件,這些是我們需要自己寫的。所有的模板都必須放在 templates 目錄下的 registration 文件夾下。

Django如何實現(xiàn)網(wǎng)站注冊用戶郵箱驗證功能

registration_form.html : 顯示注冊窗體的網(wǎng)頁,默認使用 form 變量作為窗體各字段的內(nèi)容

registration_complete.html : 填寫完注冊窗體,單擊“提交”按鈕后顯示的信息頁面

activation_complete.html : 當賬號順利完成啟用時會顯示的頁面

activate.html : 當賬號啟用失敗時會顯示的頁面

activation_email.txt : 在發(fā)送啟用郵件時使用的郵件內(nèi)容

activation_email_subject.txt : 在發(fā)送啟用郵件時使用的郵件主題

注意:由于 django-registration 會使用到 電子郵件發(fā)送功能,因此應該先設置好 Django 的電子郵件收發(fā)功能,可以使用 mailgun 來進行電子郵件收發(fā)。

相關設置參考 https://www.jb51.net/article/167669.htm

至此,我們便完成了 djano-registration 相關設置,點擊注冊,填寫信息后,便在郵箱中收到網(wǎng)站的驗證郵件信息。

Django如何實現(xiàn)網(wǎng)站注冊用戶郵箱驗證功能

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI