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