1. 程式人生 > >記錄第一個小專案,基於django的登入註冊頁面

記錄第一個小專案,基於django的登入註冊頁面

教程來源:http://zmrenwu.com

專案是基於django自帶的auth模組來認證的,檢視AbstractUser模組原始碼,發現有username,firestname,last 和email,不夠用,所以我們繼承這個類,

加上一個nickname屬性

設定完預設使用的模組後,還要進行資料庫遷移

$ python manage.py makemigrations
$ python manage.py migrate

以上兩條命令是django1.10版以上的。

一直很糾結上面兩條資料庫遷移命令。今天把預設的sqlite改為了mysql,更改settings檔案後,使用兩條命令就可以完成遷移了。而models裡面的資料型別會在遷移完成後自動在資料庫建立相應資料型別,所以不用操心。

理一下開發順序: 首先我們需要註冊的表單頁面上的內容是 使用者名稱+密碼+確認密碼+郵箱  而查看了django.contrib.auth.forms.UserCreationForm 自帶的表單屬性,發現裡面只有 密碼+確認密碼 所以我們需要在user1底下建立一個forms.py檔案來使原有繼承auth.User變為繼承user1.User,怎麼實現呢?我們上一步已經把Uer模型擴充套件了,並且檢視到裡面有這幾個field,所以通過from.modelsimportUser 就使得現在的表單變為繼承user1.User的屬性。接下來編寫views檢視邏輯,新增url,寫html就好了。

一些使用pycharm的快捷鍵  shift+enter 從下一行重新開始,ctr + b 找到上一層程式碼    ctr+f 搜尋,全部替換    超級好用

傳送郵件的時候首先遇到

django.core.exceptions.ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

需要配置環境變數  DJANGO_SETTINGS_MODULE  這個變數告訴django專案去找哪一個settings 檔案。  具體的步驟:

1、Run  -->  EditConfigures ,找到python一項,然後修改裡面的Environment variables 新增一項。名稱是DJANGO_SETTINGS_MODULE  值是  你的專案是mysite就改成 mysite.settings 。

然後通過SMTP協議傳送郵件失敗,報錯505或535

解決方法:http://blog.csdn.net/fjx1173865548/article/details/57084620

注意sender引數才是填的剛剛註冊的郵箱。!

但是我還沒有把他加到我的密碼驗證裡,待研究。。

---------------------------------------------------------

以下是解決辦法:

settings設定

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_USE_SSL = False                               #SSl關閉
EMAIL_HOST = 'smtp.qq.com'
EMAIL_PORT = 25
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = '*******'            #在qq郵箱裡獲取
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER                 #預設傳送地址一定要填

這樣就能收到郵件啦