記錄第一個小專案,基於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 #預設傳送地址一定要填
這樣就能收到郵件啦