2020-12-11 工作內容
完成收貨地址邏輯分析與實現
1.展示快取省市區資訊
- 省市區三級聯動互動
核心是在一張表上儲存省市縣資訊,採用自關聯查詢資料
- 準備省市區資訊模型和使用者地址模型
使用vue區域性更新省市縣資料,頁面載入時候,非同步載入省資訊,省ID變化時,查詢市資訊,市ID變化,查詢區/縣資訊 - 快取省市縣資訊,因為資料相對來說,基本沒有變化,所以快取提高執行速度
使用Django自帶的cache模組,很簡單實現
- 準備省市區資訊模型和使用者地址模型
2.新增地址後端邏輯
- 設計介面和定義(只允許登陸使用者)
- 定義使用者地址模型,操作使用者地址資料,並給使用者類模型新增預設地址欄位
- 邏輯實現
- 接受json資料,組織並響應json資料
3.展示地址後端邏輯
- 介面設計和定義
- 查詢所有使用者地址資訊並返回。
4.修改地址後端邏輯
- 介面設計和定義
- 查詢地址並更新
5.刪除地址後端邏輯
- 介面設計和定義:進行邏輯刪除,設計is_deleted欄位,偽刪除
- 查詢地址,並偽刪除
6.設定預設地址和修改地址標題後端邏輯
- 介面設計和定義:
- 查詢地址,並進行設定預設地址和修改地址標題
總結
對於Vue的用法還是不熟悉,修改前端頁面時候,總是進度很慢
今天對於一個BUG,因為序列化json資料時候,寫錯一個單詞,排查了一個小時,真是粗心大意不得。
2020-12-05 工作內容
完成使用者中心資訊渲染和郵箱驗證
使用者中心邏輯分析
- 分析使用者基本資訊邏輯
核心是在使用者模型中新增email_active欄位,來確認是否啟用
- 查詢並渲染使用者基本資訊
可以直接用request.user中獲取登陸使用者資訊,使用登陸驗證,保證有登陸使用者資訊
- 查詢並渲染使用者基本資訊
2.使用者中心前端邏輯
- 從後端接受使用者資訊,傳遞到vue.js中,並進行渲染,這樣格式程式碼方便統一
- 前端校驗郵箱格式
- 前端向後端對應介面傳送請求,給使用者郵箱傳送確認郵件
- 根據郵件啟用狀態,選擇呈現資訊
3.後端邏輯
- 修改使用者模型:增添email_active欄位,並遷移
- 配置Django傳送郵件配置
- 傳送郵箱驗證郵件:使用celery非同步傳送郵件,提高響應速度
celery設定重試機制
- 生成郵箱確認連線:使用itsdangerous實現簽名,並設定過期時間
- 郵箱確定連線驗證:使用itsdangerous提取使用者資訊,並驗證
總結
對於celery的一些高階用法,不是很熟悉,需要多加強學習,比如celery的工作模式有哪些等等。
第三方登陸,基本都是類似QQ登陸的,以後可以根據情況,新增各種第三方登陸
2020-12-04 工作內容
完成第三方QQ登陸
閱讀qq開發文件
開發者申請
QQ應用申請 : 需要域名透過備案
網站對接QQ登陸步驟:官方文件有詳細
2.實現QQ登陸
- 申請APPID和AppKey
- 獲取authorization code:透過處理回撥URL獲得code
- 透過authorization code 獲取access_token
- 透過access_token獲取openID
可以透過條用openapi介面,獲取修改QQ使用者資訊
3.後端實現
- 定義QQ登陸類模型:將來用來判斷使用者是否繫結過商城使用者,需要關聯使用者類User
- 使用第三方QQ登陸工具:因為QQ沒有SDK,所以使用網上第三方工具包,QQLoginTool來實現QQ登陸
- oauth2.認證,獲取openID
- openID是否繫結處理
1.繫結情況:直接給使用者保持狀態,轉回首頁或者前一頁
2.無繫結情況,如果使用者存在,直接關聯,不存在,則建立並關聯
總結
QQ開發文件要仔細觀看,細節都在裡面了。
第三方登陸,基本都是類似QQ登陸的,以後可以根據情況,新增各種第三方登陸
本作品採用《CC 協議》,轉載必須註明作者和本文連結