電商專案 2020-12-01~2020-12-11

tomcatdog發表於2020-12-11

2020-12-11 工作內容

完成收貨地址邏輯分析與實現

1.展示快取省市區資訊

  • 省市區三級聯動互動

    核心是在一張表上儲存省市縣資訊,採用自關聯查詢資料

    • 準備省市區資訊模型和使用者地址模型
      使用vue區域性更新省市縣資料,頁面載入時候,非同步載入省資訊,省ID變化時,查詢市資訊,市ID變化,查詢區/縣資訊
    • 快取省市縣資訊,因為資料相對來說,基本沒有變化,所以快取提高執行速度
      使用Django自帶的cache模組,很簡單實現

2.新增地址後端邏輯

  • 設計介面和定義(只允許登陸使用者)
  • 定義使用者地址模型,操作使用者地址資料,並給使用者類模型新增預設地址欄位
  • 邏輯實現
  • 接受json資料,組織並響應json資料

3.展示地址後端邏輯

  • 介面設計和定義
  • 查詢所有使用者地址資訊並返回。

4.修改地址後端邏輯

  • 介面設計和定義
  • 查詢地址並更新

5.刪除地址後端邏輯

  • 介面設計和定義:進行邏輯刪除,設計is_deleted欄位,偽刪除
  • 查詢地址,並偽刪除

6.設定預設地址和修改地址標題後端邏輯

  • 介面設計和定義:
  • 查詢地址,並進行設定預設地址和修改地址標題

總結

  1. 對於Vue的用法還是不熟悉,修改前端頁面時候,總是進度很慢

  2. 今天對於一個BUG,因為序列化json資料時候,寫錯一個單詞,排查了一個小時,真是粗心大意不得。

    2020-12-05 工作內容

    完成使用者中心資訊渲染和郵箱驗證

  3. 使用者中心邏輯分析

  • 分析使用者基本資訊邏輯

    核心是在使用者模型中新增email_active欄位,來確認是否啟用

    • 查詢並渲染使用者基本資訊
      可以直接用request.user中獲取登陸使用者資訊,使用登陸驗證,保證有登陸使用者資訊

2.使用者中心前端邏輯

  • 從後端接受使用者資訊,傳遞到vue.js中,並進行渲染,這樣格式程式碼方便統一
  • 前端校驗郵箱格式
  • 前端向後端對應介面傳送請求,給使用者郵箱傳送確認郵件
  • 根據郵件啟用狀態,選擇呈現資訊

3.後端邏輯

  • 修改使用者模型:增添email_active欄位,並遷移
  • 配置Django傳送郵件配置
  • 傳送郵箱驗證郵件:使用celery非同步傳送郵件,提高響應速度

    celery設定重試機制

  • 生成郵箱確認連線:使用itsdangerous實現簽名,並設定過期時間
  • 郵箱確定連線驗證:使用itsdangerous提取使用者資訊,並驗證

總結

  1. 對於celery的一些高階用法,不是很熟悉,需要多加強學習,比如celery的工作模式有哪些等等。

  2. 第三方登陸,基本都是類似QQ登陸的,以後可以根據情況,新增各種第三方登陸

    2020-12-04 工作內容

    完成第三方QQ登陸

  3. 閱讀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.無繫結情況,如果使用者存在,直接關聯,不存在,則建立並關聯

總結

  1. QQ開發文件要仔細觀看,細節都在裡面了。

  2. 第三方登陸,基本都是類似QQ登陸的,以後可以根據情況,新增各種第三方登陸

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章