django-registration

先來一個更猛的,即註冊的模版文件,下載鏈接:http://download.csdn.net/download/huanhuan_tiantian/4772819(我的博客資源)

1.安裝:pip install django-registration

2.安裝好後, 你可以在任何你開發的基於Django的項目中添加 django-registration.默認的安裝設置將通過以下流程實現用戶的註冊:

  •  一個用戶通過提供用戶名,郵箱和密碼註冊一個帳號.
  • 通過以上信息, 一個新的``User``對象被創建,並且自身的``is_active``屬性設置爲``False``. 同時生成並儲存一個激活碼, 並且發送一封含有點擊激活賬戶 鏈接的email給用戶.點擊激活鏈接之後, 新帳號被激活 (``is_active``屬性被設置爲``True``).之後用戶即可登錄帳號.

需要注意的是默認的流程需要安裝``django.contrib.auth``, 另外也建議安裝好``django.contrib.sites``. 你還需要一個能工作的郵件服務器(用來送激活郵件),並且通過對Django進行相關設置保證其可以使用這個郵件服務器. (更多細節查閱<http://docs.djangoproject.com/en/dev/topics/email/>).

 3.設置

  • 首先將``registration``添加進你項目中的``INSTALLED_APPS``設置,並且設定另一個配置:`ACCOUNT_ACTIVATION_DAYS``這代表了用戶註冊後需要激活賬戶的天數.如果在這期間用戶沒有激活賬戶,此帳號將已未激活狀態永久的保留下來,並會被 django-registration 的維護程序刪除.

 舉個例子, 你也許會如下設置Django的settings文件::

 

INSTALLED_APPS = (

'django.contrib.auth',

'django.contrib.sites',

'registration',

# ...其他安裝的應用...

)

 ACCOUNT_ACTIVATION_DAYS = 7# 一週的激活時間; 你有可能或者肯定會使用一個不同的數值.

 

         當你這麼做之後, 運行 ``manage.py syncdb`` 來安裝默認設置需要用到的model.

 

  • 設置 URL:(r'^accounts/', include('registration.backends.default.urls')),之後用戶可以通過訪問以下URL來註冊``/accounts/register/``, 以及登錄 (激活後)``/accounts/login/``, 等等.具體查看registration.backends.default.urls。

  •  需要使用到的模板

默認安裝的情況下, 你需要創建一些 django-registration 需要的模板,以及``django.contrib.auth``中的視圖可能需要的其他模板. django-registration需要的模板如下; 需要注意的是, 除了賬戶激活郵件的模板外,其他模板全部都使用``RequestContext``並且都會接收由`內容處理器context processors<http://docs.djangoproject.com/en/dev/ref/templates/api/#id1>提供的其他變量.

 

模板1:**registration/registration_form.html**

  用來顯示用戶註冊時將填寫的表單. 默認情況有如下的內容:``form``註冊的表單. 可以作爲一些``django.forms.Form``中的子類, 想知道在模板中如何顯示錶單,可以參考`Django 有關表單的文檔 <http://docs.djangoproject.com/en/dev/topics/forms/>`

  模板2:**registration/registration_complete.html**

用於成功完成註冊表單之後. 這個模板沒有自己的變量內容,可以僅簡單通知用戶一封包含有賬戶激活內容的郵件已發送.

  模板3:**registration/activate.html**

  在賬戶激活失敗時使用. 默認情況有如下的內容:``activation_key``在嘗試激活期間使用的激活碼.

  模板4:**registration/activation_complete.html**

  在用戶成功激活賬戶之後使用. 這個模板沒有自己的變量內容, 可以僅簡單通知用戶他們的賬戶現在已經激活.

  模板5:**registration/activation_email_subject.txt**

用來生成激活郵件的主題. 因爲郵件的主題必須是單獨一行的文本,任何輸出到這個模板的內容在使用前都會被強制轉換成單獨一行,該模板有如下內容:``activation_key``新賬戶的激活碼.``expiration_days``賬戶激活期限的天數.``site``一個展現用戶註冊後頁面的對象; 取決於``django.contrib.sites``是否已經安裝, 該對象可以是以下兩者中其中一個的實例``django.contrib.sites.models.Site``(如果sites應用已經安裝) 或者``django.contrib.sites.models.RequestSite``(如果沒有)要了解這些對象實例的細節, 可以查閱`Django sites 框架的文<http://docs.djangoproject.com/en/dev/ref/contrib/sites/>`.

 模板6:**registration/activation_email.txt**

用來生成激活郵件的內容. 將會顯示一個用戶點擊後即可激活賬戶的鏈接. 該模板有以下內容:``activation_key``新賬戶的激活碼.

``expiration_days``賬戶激活期限的天數.``site``一個展現用戶註冊後頁面的對象; 取決於``django.contrib.sites``是否已經安裝, 

該對象可以是以下兩者中其中一個的實例``django.contrib.sites.models.Site``(如果sites應用已經安裝) 或者``django.contrib.sites.models.RequestSite``(如果沒有). 要了解這些對象實例的細節, 可以查閱`Django sites 框架的文檔 <http://docs.djangoproject.com/en/dev/ref/contrib/sites/>.注意這些用來生產激活賬戶郵件的模板使用的後綴是``.txt``,而不是``.html``.因爲HTML郵件普遍存在的被厭惡情緒和操作問題,django-registration 默認使用純文本郵件,並且這些模板僅簡單輸出純文本而不是HTML.

 

爲了使用``django.contrib.auth``(上文提到過的由你在URLconf中設置的)的視圖,你還需要創建這些視圖需要使用的模板. 查閱`Django 的用戶認證系<http://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.views.login>來獲得這些模板的細節.



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章