天天生鲜1
注冊
通過是請求頁面還是向服務器傳輸數據來判斷是注冊還是訪問。
注冊顯示函數
通過register返回一個注冊頁面
注冊處理函數
進行數據接收
request.POST.get()
進行數據校驗
if
render(數據不完整)
對郵箱和用戶名等進行正則匹配,若不匹配,則返回錯誤頁面和提示。
檢查用戶名是否唯一時,可以用try,然后拋出異常
進行業務處理
數據保存進數據庫
使用django.core.mail模塊發郵件,需要使用smtp服務器
登錄郵箱,在設置中有一個post/smtp/imap
客戶端授權密碼
設置授權碼,確定就好了。
在設置中進行發送郵件的配置
email-backend
email-host 發郵件的地址
email-port
email-host-user 郵箱
email-host-password 授權碼
email-from 發件人
導入發郵件的函數 send-mail
配置直接記住大概就
激活鏈接為一個網站,可以用正則表達式接收token,進行反向解析,即可驗證其正確性。
解析出用戶id,并且把用戶的激活標記改為1即可
并且重定向到登錄頁面
若無法解析,這捕獲異常,并在頁面進行響應。
返回應答
進行反向解析,用reverse函數。
可以使用類視圖,通過其視圖函數來進行url注冊
其類視圖可以根據請求方式來調用相應的函數,主要是as.view函數對其進行了封裝,
celery異步發送郵件
send-mail會阻塞執行,會大概休眠5s
可以把其封裝到進程中進行執行
celery任務隊列,用redis作為中間人,任務發出者發出任務到任務隊列,任務監聽者監聽任務隊列,處理任務。
pip install celery
傳入celery路徑和broker
broker為中間人指定redis
最后用裝飾器實現
在主程序中導入celery.task中的發郵箱函數
其處理者可以不在同一臺電腦上
在處理者一段應該加上初始化代碼
登錄
類視圖函數其實在html函數中有定義action
登錄其實有django自制作的認證系統
可以用安裝session的包,在redis書庫庫存儲session信息。
django-redis
修改django cache setting
作為session backend使用配置
使用django-redis進行測試
根據用戶是否登錄,來顯示不同內容
總結
- 上一篇: JavaScript读取JSON文件
- 下一篇: html5input表单标签新属性