首行佔位前端
項目需求:redis
1.首頁展現django
2.用戶登陸註冊後端
3.課程展現,課程詳情展現編輯器
4.視頻播放post
5.添加購物車,購物車調整視頻
6.建立訂單jwt
7.支付排序
業務邏輯:token
1.進入首頁
2.點擊查看課程列表
3.點擊進入課程詳情
4.點擊播放視頻
5.未登陸則跳轉到登陸頁面,已登陸的就檢查是否有權限,有權限則進入播放頁面,無權限提醒購買
6.加入購物車,建立訂單,支付
輪播圖:接口提供image+link
導航:name+link
登陸:
基於Django默認提供的認證系統,在項目中引入了JWT認證機制來代替Session機制,將用戶的身份憑據存放在Token中,而後對接Django的認證系統,實現登陸
Django REST framework JWT提供了登陸獲取token的視圖,能夠直接使用默認的返回值僅有token,爲了方便在客戶端頁面中顯示當前登陸用戶,修改了jwt視圖的默認返回值,增長id跟username
Django認證系統中提供的用戶模型類及方法很方便,但沒法知足本項目需求,如無保存手機號的字段,因此咱們擴展了它提供的用戶模型類
多條件登陸:JWT擴展的登陸視圖,在收到用戶名與密碼時,也是調用Django的認證系統中提供的authenticate()來檢查用戶名與密碼是否正確。
咱們經過修改Django認證系統的認證後端(主要是authenticate方法)來支持登陸帳號既能夠是用戶名也能夠是手機號
極驗驗證:
1.頁面加載向後端請求驗證流水號
2.滑動成功完成,向後端發送滑動結果進行校驗,校驗成功給前端返回容許點擊登陸按鈕的消息
短信註冊:
1.點擊發送短信
2.將短信保存在redis,並提醒前端發送成功
3.點擊註冊,將輸入的驗證碼與redis裏面的驗證碼對比,成功則進行下一步
經過django-filter模塊實現課程分類展現,使用drf的排序和分頁功能實現課程的分頁與排序
課程分類:
默認不分類,顯示全部
課程展現:
展現的課程包含課程分類,課程信息,課程章節,課時信息,老師信息,價格策略這些內容
詳情頁:
CKEditor富文本編輯器,保利威,用戶向後端請求token並播放視頻
使用保利威視頻服務平臺,來實現收費視頻的播放,藉助保利威的開發文檔
具體流程是:前端向後端請求視頻播放的token,後端驗證無誤後向前端發送能夠獲取視頻的token,前端拿到token後向保利威獲取視頻。
添加購物車:
使用Redis,管道(事務)
狀態更改:
切換勾選狀態和課程有效期
移除購物車:
生成訂單(訂單記錄與訂單詳情):
用戶提交訂單,後端進行校驗信息,確保課程等信息無誤有效,計算真實價格,開始生成訂單,使用事務生成訂單,成功刪除購物車裏面的數據,失敗回滾操做
步驟:
1.前端請求支付
2.後端驗證請求支付寶生成支付鏈接,發送給前端
3.前端進行支付
4.支付成功後,支付寶會發送兩個請求,get到前端,post到後端,後端進行驗證添加購買記錄