AXF
開發流程
- 産品經理産出需求文檔
- 産品根據需求需求文檔做出原型圖
- 原型圖交給設計對頁面互動,細節進行設計
- 之後會交到開發手中
- 分析需求,設計資料模型
- 從資料開始開發
- 封裝資料操作
- 做資料展示
需求分析
- 使用者系統
- 商品系統
- 首頁展示
- 購物車
- 訂單系統
- 位址系統
- 優惠券
- 積分系統,等級系統
搭建項目
- 導入靜态資源
适配
- 前端學過的機關
- px
- em 相對機關 相對于父級元素,預設 16px
- rem 相對機關,和em很像 相對于root 根級元素
- 将螢幕寬度分為十份
添加到購物車
- 購物車
- 展現的是使用者和商品的關系
- 商品
- 使用者還沒有
- 添加到購物車
- 判斷使用者是否登入
- 未登入應該跳轉到登入頁面
- 如果已經登入,添加到購物車
- 通過使用ajax實作
閃購頁面
- 級聯篩選+排序
- 篩選需要條件
- 見名知意
- 排序
- 前端端需要協商定制的一個字段(背景定制)
- 定制接口
使用者子產品
- 基礎使用者字段
- name
- password
- icon
- 激活權限
- 邏輯删除
- 使用者權限
- 讀權限
- 寫權限
- 删除權限
- 删除别人的文章
- xxx
先實作靜态頁面
Django中面向對象
- 模型繼承
- 模闆繼承
- 視圖函數
- FBV 給予函數的視圖函數
- CBV 給予類的視圖函數
- 請求流程
- Browser -> urls -> Views( Class ) -> Response -> Browser
- urls -> UserView.as_view()
- 判斷參數是否是合法(是不是請求方法)
- 判斷關鍵字參數的key在我們類中是否存在
- 定義新的view,用來做傳回處理
- 預設head請求功能和get一樣
- dispatch 分發
- 根據方法的名字去判斷
- 是否存在于我們django支援的方法中
- 擷取方法對應函數
- 擷取到了
- 将參數傳遞給處理函數
- 未擷取到
- 直接傳回405 請求方法不被支援
- 擷取到了
網絡狀态嗎
- 2xx
- 成功
- 3xx
- 資源發生轉移,遷移
- 4xx
- 用戶端錯誤
- 5xx
- 伺服器錯誤
- 其餘6xx-9xx
- 預定額
- 901 單終端登入
程式開發
- 低耦合
- 高内聚
程式結構
- 如果程式中出現了上帝檔案,上帝類
- 建立App
- 跨App調用
- 循環引用
- 建立多個Views
- 将資料擷取,資料篩選進行隔離
- 建立App
使用者激活
- 激活政策
- 郵件
- 短信驗證碼
- 郵件激活
- 注冊的時候給你的郵箱發送一個郵件
- 郵件中包含激活連結
- 激活連結上有一個參數
- 辨別支援過期
- 映射關系,辨別參數可以映射到使用者
購物車
- 購物車和使用者
- 一個使用者一個購物車
- 一個購物車對應多個商品
- 一個商品可以被多個使用者買
- 商品和使用者多對多的關系
- 有一張額外的關系表
- 存儲可使用者的唯一的辨別
- 存儲了商品的唯一辨別
- 關系表就是購物車表(資料)
- 購物車表設計
- 商品辨別
- 使用者辨別
- 商品數量
- 此條商品資料是否選中
- 下單
- 将選中的商品生成一個訂單
- 使用者和訂單一對多
- 一個訂單對應多個購物車資料,一對多
- 訂單表設計
- 使用者辨別
- 訂單号
- 訂單時間
- 訂單狀态
- 訂單商品表
- 訂單辨別
- 商品辨別
- 商品數量
全選邏輯
- 隻要有未選中的,全選按鈕就是未選中狀态
- 點選的時候,全選按鈕變亮
- 未選中的全都變成選中
- 如果全都是選中的
- 點選全選應該所有都變成未選中
- 實作方案兩種
- 用戶端實作
- 服務端實作
支付
- web支付
- 需要注冊開發者賬号
- 需要企業營業執照(個人營業執照)
- 建立應用
- 支付權限不可用
- 需要你提供一個文檔在什麼情景下需要支付
- 測試賬号
- 支付流程
- 拿着訂單資訊,去調用支付寶的接口
- 訂單資訊需要按照支付寶的格式進行簽名
- 調用支付之後,回給你一個回調函數
- 使用回調函數修改訂單狀态
- 移動支付
- 支付流程可以繞過伺服器
- 支付之前需要将訂單資訊傳遞給伺服器
- 伺服器記錄訂單資訊
- 允許用戶端調用支付
- 用戶端調用支付之後記得通知給伺服器
- 支付實際上就是調用支付API
- 實際上都是固定的模闆
- 想快速內建多種支付
- 可以 ping++
算法
- 編碼
- base64
- urlencode
- 摘要
- md5
- 128位的二進制
- 32位的16進制,每一個16進制可以很友善的轉換成unicode
- sha
- 單向不可逆
- 不管輸入多長,輸出的長度都是固定的
- md5
- 加密
- 對稱加密
- DES,AES
- 隻有一個鑰匙
- 非對稱加密
- RSA
- 鑰匙是成對的
- 對稱加密
技能點
- 模闆中的
- {{ block.super }}
- 繼承父模闆中塊中的内容,不覆寫内容,預設三次及以上出現的模闆會覆寫内容
- django ORM中
- 顯性屬性(顯性對象)
- 開發者主動聲明的屬性
- 隐性屬性(隐性對象)
- 開發者沒有聲明,django架構自動為開發者聲明的
- 顯性屬性(顯性對象)
- django模闆中點文法
- 代表屬性和方法
- 代表索引
- 代表字典的key
- jQuery中擷取屬性
- attr
- 擷取任意屬性
- prop
- 隻能擷取内置屬性
- attr
- 端口掃描
- nmap
- property
- 将函數變成屬性
- 添權重限
- 沒有setter就是隻讀
- 有了setter才能設定
- 浮點型資料操作
- 可能會出現精度問題
- 保留兩位小數
- Decimal
Celery
- 配置
- init 中初始化celery
- settings中配置Celery
- 使用
- 在App中建立自己的tasks
- 使用share_task裝飾函數
AOP
- 中間件
- process_request
- 反爬
- 統計
- 過濾器(攔截器)
- 黑白名單
- process_view
- CSRF
- process_template_response
- process_response
- 統一配置
- 跨域
- 過期時間
- process_exception
- 頁面友好化
- process_request
- 實作中間件
- 建立中間件
- 注冊中間件
- 在中間件中書寫實作的功能
基于請求頻率的反爬
- 需求,一個ip一分鐘隻能通路10次
蜜罐抓豬
- 傳回的資料和顯示的資料不對稱的
- 中間包含了一些僞資料
- 僞資料隻要被通路,立馬拉黑請求者