django-registration

快速開始指南

      在安裝django-registration以前,你須要先安裝Django。django-registration 0.8須要Django1.1或更新版本的支持。html

 

      Django進一步的信息請參閱 Django下載頁面,提供了方便的打包下載和安裝介紹。python

 

安裝django-registration

      安裝django-registration的幾種方式:django

    1. 經過包管理器自動進行;
    2. 下載django-registration壓縮包並手動安裝;
    3. 經過執行最新代碼的Mercurial檢出手動安裝。

      推薦您學習使用virtualenv來開發部署Python軟件。virtualenv能使各類軟件的安裝與Python環境隔離開,其餘安裝的軟件不會產生衝突。這樣Python包的安裝、測試、管理和部署簡單多了。服務器

 

經過包管理器自動安裝

      有幾種用於Python的包自動安裝工具,最流行的是easy_install和pip,也能夠用於安裝django-registration。app

     

      使用easy_install,輸入:工具

easy_install -Z django-registration學習

    注意:-Z參數是必需的,告訴esay_install不要新建壓縮包;壓縮包會阻礙Django正常工做的某些功能。
 
    使用pip,輸入:

pip install django-registration測試

    
    你也可使用操做系統發行商提供的django-registration包。請參閱你的操做系統的安裝包詳細列表,注意第三方發行商可能提供的是django-registration的老版本,因此你應該參閱你的操做系統包文檔。
 

下載壓縮包手動安裝

    若是你不喜歡使用包自動安裝,你能夠下載django-registration壓縮包手動安裝。最新版本在http://pypi.python.org/pypi/django-registration/下載。
 
    下載完解壓,獲得一個包含setup.py安裝腳本的django-registration-0.8文件夾。在命令行的此目錄下輸入:

python setup.py installurl

    注意:在一些系統中你可能須要管理員權限。
 

Mercurial檢出手動安裝

      若是你想要嘗試最新的開發代碼,能夠從django-registration版本庫中獲取。版本庫由Bitbucket託管,使用Mercurial做爲版本控制。你須要安裝Mercurial來獲取最新代碼和文檔,命令行輸入:spa

hg clone

http://bitbucket.org/ubernostrum/django-registration/
 
    你也能夠hg clone的-r參數來得到指定的版本,每一個版本的格式都是:vX.Y,「X.Y」是版本號。例如:檢出0.8版本,輸入:

hg clone -r v0.8

http://bitbucket.org/ubernostrum/django-registration/
 
    上面兩種方式都會在你的電腦中新建django-registration版本庫的一個副本。而後你能夠在檢出你的Python導入路徑裏添加django-registration目錄,或者執行setup.py腳本像包同樣安裝。
 

基本配置和使用

      安裝後,你就能添加django-registration到你正在開發的任何基於Django的項目。默認設置將會使用戶註冊按照下面工做流進行:

    1. 用戶經過提供用戶名、Email地址和密碼註冊;
    2. 經過此信息,一個新User對象被建立,它的is_active字段設置爲False。此外,一個激活密鑰會自動生成和存儲,一封包含激活賬戶連接的電子郵件會發送給用戶。
    3. 用戶點擊激活連接,這個新賬戶就會被激活(is_active字段被設置爲True),而後用戶就能夠登陸了。

      注意:默認工做流須要django.contrib.auth模塊被安裝,推薦django.contrib.sites模塊也應該被安裝好。你還須要有一個可用的郵件服務器(發送激活郵件),給Django提供必需的設置來使用此郵件服務器(請參閱Django的郵件發送文檔細節)。

 

必需的設置

      首先在你項目的INSTALLED_APPS的設置中添加registration,而後添加一條額外的設置:ACCOUNT_ACTIVATION_DAYS

      這個設置是用戶註冊後在這個天數內必須激活他的賬戶。若是用戶在這段時間內沒有激活,這個賬戶將永久保持未激活,能夠經過django-registration中提供的維護腳原本刪除。

 

      例如,在你的Django settings文件中像下面同樣設置:

 

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

 
完成後,運行

manage.py syncdb

來安裝默認設置下的此模塊。
 

設置urls

      與django.contrib.auth中幾個有用的視圖(如:login,logout,password change/reset)同樣,默認後臺包含了Django URLconf,與django-registration中的視圖相匹配的URL配置。這個URLconf在registration.backends.default.urls中,所以能夠在項目的根URL配置中簡單地包含它。例,將這些URLs加上前綴/accounts/,項目的根URL配置以下添加:

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

    用戶就能夠訪問/accounts/register/來註冊,激活後經過/accounts/login/登陸,等等。
 

必需的模板

    默認配置中,你須要建立幾個django-registration必需的模板,

django.contrib.auth

中視圖所需的附加模板。django-registration所需的模板以下;注意,因爲用作賬戶激活郵件的模板異常,全部模板都使用

RequestContext

渲染和接收任何由

context processors

提供的附加變量。
 

registration/registration_form.html

    用於顯示用戶填寫註冊的表單。上下文:
    form
    註冊表單。它是

django.forms.Form

子類的一個實例;請參閱

Django’s forms documention

中如何在模板中顯示錶單。
 

registration/registration_complete.html

      用於註冊表單成功提交後。這個模板沒有任何本身的變量,只是簡單地告知用戶賬戶激活郵件已經發送出去。

 

registration/activate.html

     用於賬戶激活失敗。上下文:

   activation_key
   嘗試激活的激活碼
 

registration/activation_complete.html

   用於成功激活賬戶。這個模板也沒有本身的變量,只是簡單告知用戶他的賬戶如今已激活了。
 

registration/activation_email_subject.txt

   用於生成激活郵件的郵件標題。由於郵件標題必須是單行文本,因此任何從這個模板的輸出在使用前都會被強制壓縮成單行的。上下文:
   activation_key
   新賬戶的激活碼。
   expiration_days
   賬戶激活的剩餘天數。
   site
   表示用戶註冊站點的對象,依賴於安裝的

django.contrib.sites

,是

django.contrib.sites.models.Site

(若是這個sites應用已安裝)或

django.contrib.sites.models.RequestSite

(若是沒有安裝)的一個實例。關於這些對象接口的更多細節請參閱

the documentation for the Django sites framework

 

registration/activation_email.txt

   用於生成激活郵件的內容。應該顯示用戶點擊就能激活賬戶的連接。上下文:
   activation_key
   新賬戶的激活碼
   expiration_days
   賬戶激活的剩餘天數。
   site
   表示用戶註冊站點的對象,依賴於安裝的django.contrib.sites,是

django.contrib.sites.models.Site

(若是這個sites應用已安裝)或

django.contrib.sites.models.RequestSite

(若是沒有安裝)的一個實例。關於這些對象接口的更多細節請參閱

the documentation for the Django sites framework

   注意,用戶生成賬戶激活郵件的模板的擴展名是.txt,不是.html。因爲對HTML郵件互用性問題的廣泛反感,django-registration默認採用平文郵件,因此這些模板應該簡單地輸入平文,而不是HTMl。
   爲了使django.contrib.auth的視圖有效,你須要建立這些視圖所需的模板。
關於模板的更多細節請參閱 the documentation for Django’s authentication systemhttps://www.cnblogs.com/PythonHome/archive/2011/12/17/2291040.html
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息