久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Python+Vue游戲裝備交易商城系統(tǒng):架構(gòu)設(shè)計(jì)與實(shí)戰(zhàn)全解析

Python+Vue游戲裝備交易商城系統(tǒng):架構(gòu)設(shè)計(jì)與實(shí)戰(zhàn)全解析 “基于PythonVue的游戲裝備交易商城系統(tǒng)”這個(gè)標(biāo)題我太熟了。這幾乎是每一屆想做點(diǎn)東西但又不想只寫個(gè)管理系統(tǒng)的同學(xué)都會(huì)碰到的題也是后臺(tái)私信里被問得最多的項(xiàng)目類型之一。但說句實(shí)話真正把“交易”兩個(gè)字做明白的十個(gè)里可能不到兩三個(gè)。原因很簡(jiǎn)單普通電商的商品是標(biāo)準(zhǔn)品游戲裝備是非標(biāo)品它牽扯到出售者、購買者、平臺(tái)審核、虛擬物品交付、資金托管這些環(huán)節(jié)任何一個(gè)地方想當(dāng)然后面就是連環(huán)坑。這篇文章就圍繞這個(gè)系統(tǒng)把我實(shí)際做下來的一套完整方案、代碼結(jié)構(gòu)和踩坑記錄拆開來講。無論你是拿它做畢業(yè)設(shè)計(jì)還是想自己搭一個(gè)類似的交易平臺(tái)練手或者是準(zhǔn)備寫進(jìn)簡(jiǎn)歷的實(shí)戰(zhàn)項(xiàng)目這篇文章都能讓你少走很多彎路。我不打算貼大段完整代碼因?yàn)榇a真正難的地方不在“寫出來”而在“為什么這么寫”。我會(huì)把架構(gòu)、數(shù)據(jù)庫設(shè)計(jì)、狀態(tài)流轉(zhuǎn)、并發(fā)處理、前后端聯(lián)調(diào)、部署這些問題都過一遍順便告訴你每步的取舍邏輯。照著做這個(gè)項(xiàng)目能真正跑通。1. 項(xiàng)目到底在做什么先把需求拆明白1.1 游戲裝備交易商城不是普通電商普通電商網(wǎng)站商品就是實(shí)物或者虛擬物品下單、付款、發(fā)貨、確認(rèn)收貨中間還穿插售后。游戲裝備交易商城最大的區(qū)別在于三件事第一裝備是非標(biāo)品。同一個(gè)游戲里的一把武器可能因?yàn)榈燃?jí)、強(qiáng)化等級(jí)、附魔、耐久、詞條、綁定性不同價(jià)格天差地別。所以不能像普通商品一樣只掛個(gè)標(biāo)題和價(jià)格必須支持自定義屬性、詳細(xì)描述、甚至多圖展示。第二交易流程涉及**“擔(dān)?!?。買家怕付款后拿不到裝備賣家怕裝備交出后收不到錢。所以典型的裝備交易商城會(huì)有“平臺(tái)擔(dān)?!钡母拍钔婕野蜒b備寄存到平臺(tái)或指定角色系統(tǒng)標(biāo)記為“寄售中”買家下單付款后平臺(tái)再把裝備發(fā)給買家賣家收到的是扣除手續(xù)費(fèi)后的錢。整個(gè)過程有清晰的狀態(tài)機(jī)**。第三裝備是唯一性物品。每一件設(shè)備在游戲里都有獨(dú)立的ID在平臺(tái)上賣出一件后這個(gè)裝備就變成“已售出”不能再掛第二次。這在技術(shù)上意味著賣家上架裝備時(shí)必須提交唯一標(biāo)識(shí)賣家下架、售出、凍結(jié)都要有嚴(yán)格狀態(tài)流轉(zhuǎn)不能出現(xiàn)兩個(gè)人同時(shí)買到同一件裝備。1.2 角色與核心流程一個(gè)完整的游戲裝備交易商城至少涉及三類角色賣家、買家、平臺(tái)運(yùn)營(yíng)者管理員。賣家要能注冊(cè)登錄、實(shí)名認(rèn)證、發(fā)布裝備、修改裝備信息、下架裝備、查看訂單、提現(xiàn)收益。買家要能瀏覽裝備、按游戲/服務(wù)器/裝備類型篩選、搜索、收藏、加入購物車、下單、支付、確認(rèn)收貨、申請(qǐng)售后。管理員則要做裝備信息審核、違規(guī)處理、訂單仲裁、用戶管理、系統(tǒng)配置。核心交易流程設(shè)計(jì)成這樣子賣家發(fā)布裝備填寫游戲區(qū)服、裝備名稱、屬性、售價(jià)、庫存件數(shù)一般就1件、裝備截圖。平臺(tái)審核裝備通過后裝備狀態(tài)變?yōu)椤吧霞堋痹谇芭_(tái)可見。買家搜索或?yàn)g覽到裝備下單并支付到平臺(tái)虛擬錢包。系統(tǒng)鎖定該裝備同時(shí)通知賣家發(fā)貨線下交易裝備或平臺(tái)自動(dòng)發(fā)貨。賣家確認(rèn)發(fā)貨后買家確認(rèn)收貨。平臺(tái)將貨款打到賣家賬戶余額同時(shí)扣除一定比例的手續(xù)費(fèi)。賣家可申請(qǐng)?zhí)岈F(xiàn)平臺(tái)打款后完成交易。你看這一步都不能想當(dāng)然。很多新手做的商城下單后直接把裝備狀態(tài)改成“已售”萬一買家不支付怎么辦被惡意下單掛單怎么辦都得靠狀態(tài)機(jī)來解決。1.3 技術(shù)棧選型為什么是PythonVue這套組合在近幾年的開發(fā)需求里幾乎成了前后端分離的“標(biāo)準(zhǔn)答案”。后端用Python生態(tài)里有兩個(gè)成熟的Web框架Django和Flask。Django自帶Admin后臺(tái)、ORM、認(rèn)證、路由適合快速搭建完整業(yè)務(wù)系統(tǒng)Flask更輕自由度更高適合自己掌控結(jié)構(gòu)。我個(gè)人更推薦拿Django做這種交易系統(tǒng)因?yàn)锳dmin后臺(tái)可以幫管理員省掉大量重復(fù)開發(fā)工作而且ORM在處理裝備狀態(tài)、訂單這類關(guān)系型數(shù)據(jù)時(shí)非常順手。前端用Vue核心原因是組件化和響應(yīng)式。裝備列表、篩選器、購物車、訂單狀態(tài)這些東西拆成Vue組件后復(fù)用和維護(hù)都很舒服。Vue的Vuex或Pinia處理購物車、用戶登錄態(tài)這類共享狀態(tài)也成熟。加上Vite構(gòu)建工具和Element Plus組件庫后臺(tái)管理頁面能快速拼出來。選擇這套方案的另一個(gè)理由資料多。遇到問題搜索時(shí)DjangoVue這個(gè)組合的踩坑記錄非常豐富這對(duì)開發(fā)經(jīng)驗(yàn)還不算特別充足的同學(xué)尤為重要。2. 系統(tǒng)設(shè)計(jì)與數(shù)據(jù)庫模型先把地基打好2.1 前后端分離架構(gòu)很多人做這個(gè)項(xiàng)目時(shí)一上來就寫代碼這是我最不建議的做法。項(xiàng)目涉及多個(gè)實(shí)體、多種角色、復(fù)雜的訂單和錢包邏輯數(shù)據(jù)庫關(guān)系沒理清楚后面寫每一條查詢都痛苦。先確定架構(gòu)前端Vue應(yīng)用跑在Nginx上后端Django跑在Gunicorn/uWSGI上前后端通過RESTful API通信。登錄認(rèn)證采用JWTJSON Web Token后端返回Token前端存儲(chǔ)在localStorage或Cookie里每次請(qǐng)求帶上。數(shù)據(jù)庫用MySQL緩存和簡(jiǎn)單隊(duì)列用Redis。整個(gè)架構(gòu)不是特別復(fù)雜但足夠支撐一個(gè)真實(shí)可用的交易平臺(tái)。2.2 核心表結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫是整個(gè)系統(tǒng)的核心我按業(yè)務(wù)模塊拆分設(shè)計(jì)。用戶表用戶名、密碼哈希、郵箱或手機(jī)號(hào)、注冊(cè)時(shí)間、賬號(hào)狀態(tài)、賣家等級(jí)、買家等級(jí)、是否有賣家權(quán)限。這里要特別說明游戲裝備商城最好把“賣家身份”和“普通用戶身份”分開。默認(rèn)注冊(cè)用戶只能買東西要賣裝備必須提交實(shí)名信息或繳納保證金后臺(tái)通過后才有賣家權(quán)限。這個(gè)邏輯可以用is_seller布爾字段或關(guān)聯(lián)一張“賣家資質(zhì)表”實(shí)現(xiàn)。裝備表這是重點(diǎn)表字段大概可以這樣設(shè)計(jì)我用簡(jiǎn)單的表結(jié)構(gòu)描述字段說明id裝備唯一編號(hào)seller_id賣家用戶IDgame_name游戲名稱server_name服務(wù)器名稱category_type武器/防具/飾品/材料等title裝備標(biāo)題unique_identifier游戲內(nèi)裝備唯一IDdescription詳細(xì)描述支持富文本price售價(jià)分為單位original_price原價(jià)用于打折status0-草稿1-待審核2-在售3-已售4-已下架5-凍結(jié)images裝備截圖JSON數(shù)組attributes自定義屬性JSON例如強(qiáng)化等級(jí)、傷害值view_count瀏覽次數(shù)created_at / updated_at時(shí)間戳把a(bǔ)ttributes設(shè)計(jì)成JSON字段是為了適應(yīng)不同游戲的差異。不同游戲的裝備屬性完全不一樣做成硬編碼字段會(huì)累死。JSON字段的缺點(diǎn)是查詢性能差一點(diǎn)但裝備列表的篩選通常基于價(jià)格、游戲、裝備類型不會(huì)對(duì)著屬性字段做精確匹配所以影響不大。訂單表訂單號(hào)、買家ID、賣家ID、裝備ID快照信息、金額、手續(xù)費(fèi)、實(shí)付金額、狀態(tài)、支付時(shí)間、發(fā)貨時(shí)間、完成時(shí)間、備注。這里有個(gè)關(guān)鍵點(diǎn)做裝備快照。因?yàn)檠b備在交易過程中可能被賣家修改買家下單時(shí)看到的必須是一個(gè)不可變的快照否則很容易產(chǎn)生糾紛。最簡(jiǎn)單的做法是在訂單表里冗余一份裝備標(biāo)題、圖片、主要屬性下單時(shí)從裝備表復(fù)制過來。這樣既保證買家看到的和實(shí)際交易的一致又避免關(guān)聯(lián)查詢裝備表。錢包表用戶ID、可用余額、凍結(jié)余額提現(xiàn)中的錢、累計(jì)收入、累計(jì)提現(xiàn)。交易平臺(tái)的錢不能直接走第三方支付把每筆錢都打給賣家那樣無法抽成和仲裁。所以設(shè)計(jì)為買家付款后錢進(jìn)入“平臺(tái)錢包”賣家賣出裝備后貨款進(jìn)入“錢包余額”可申請(qǐng)?zhí)岈F(xiàn)到銀行卡。支付流水表訂單ID、交易類型充值、支付、退款、提現(xiàn)、金額、支付渠道、渠道流水號(hào)、狀態(tài)、創(chuàng)建時(shí)間。所有錢的變動(dòng)都要走流水方便對(duì)賬。2.3 裝備唯一性與狀態(tài)機(jī)設(shè)計(jì)裝備的唯一性不能靠“裝備標(biāo)題唯一”來保證必須靠unique_identifier字段同時(shí)加上游戲名、服務(wù)器名做聯(lián)合唯一約束。有些平臺(tái)會(huì)要求賣家上傳“裝備ID截圖”就是為了防止同一件裝備反復(fù)掛售。裝備狀態(tài)機(jī)是系統(tǒng)里最容易寫亂的地方。我的經(jīng)驗(yàn)是用常量定義狀態(tài)并寫一個(gè)狀態(tài)轉(zhuǎn)移表草稿 - 待審核賣家提交待審核 - 在售管理員審核通過待審核 - 草稿管理員駁回在售 - 已下架賣家手動(dòng)下架在售 - 凍結(jié)被管理員鎖定/糾紛仲裁在售 - 已售買家支付成功且交易完成凍結(jié) - 在售 / 下架后臺(tái)處理下單之前一定要判斷裝備狀態(tài)是否為在售下單成功鎖定后要保證狀態(tài)不被其他并發(fā)請(qǐng)求重復(fù)下單覆蓋。3. 后端核心模塊實(shí)現(xiàn)Django與REST框架的配合3.1 項(xiàng)目結(jié)構(gòu)怎么組織用Django做這類項(xiàng)目我建議按App拆分至少包括users、goods、orders、payments、management。每個(gè)App保持高內(nèi)聚。users管理用戶、認(rèn)證、錢包和賣家資質(zhì)。goods管理裝備發(fā)布、裝備搜索、上架下架。orders處理購物車、訂單生成、訂單狀態(tài)更新。payments處理充值、支付回調(diào)、提現(xiàn)。management是給后臺(tái)用的接口比如裝備審核、用戶封禁、訂單仲裁。這樣拆的意義在于后面加功能時(shí)不會(huì)把路由、模型、視圖堆成一坨。比如要增加“裝備留言評(píng)論”功能直接開一個(gè)commentsApp就行不會(huì)動(dòng)核心邏輯。3.2 用戶認(rèn)證與JWT實(shí)現(xiàn)前后端分離下Session不好使因?yàn)榍岸撕秃蠖瞬皇峭粋€(gè)域名或端口。JWT是常見選擇。Django官方推薦的djangorestframework-simplejwt這個(gè)庫很好用。具體做法配置SIMPLE_JWT設(shè)置令牌有效期。我做的時(shí)候是Access Token 30分鐘Refresh Token 7天。登錄接口返回Access和Refresh兩個(gè)令牌前端記住它們。Django REST framework的權(quán)限類設(shè)置為IsAuthenticated然后在視圖基類里默認(rèn)保護(hù)所有API再在白名單里放行登錄注冊(cè)和商品列表。用戶身份就是在請(qǐng)求頭里帶Authorization: Bearer token通過request.user獲取。這里面有一個(gè)容易踩的坑刷新Token的接口不要誤被權(quán)限裝飾器攔截否則前端刷新頁面后Token過期又沒法自動(dòng)續(xù)期。前端也要封裝好axios攔截器401的時(shí)候靜默刷新、重試錯(cuò)過的請(qǐng)求。3.3 裝備發(fā)布與狀態(tài)流轉(zhuǎn)裝備發(fā)布的核心點(diǎn)不在“保存數(shù)據(jù)庫”而在“校驗(yàn)和事務(wù)”。賣家提交裝備信息時(shí)至少要做這些校驗(yàn)賣家權(quán)限校驗(yàn)是否開通賣家功能。unique_identifier在當(dāng)前游戲服務(wù)器下是否已存在一件“在售或待審核”的裝備防止重復(fù)掛。價(jià)格是否在合理范圍圖文是否合規(guī)。圖片上傳是否成功一般用云存儲(chǔ)或本地目錄。校驗(yàn)通過后新建裝備記錄狀態(tài)為待審核。如果項(xiàng)目走自動(dòng)審核可以省去管理員操作如果是完整入門的項(xiàng)目我建議保留管理員審核這個(gè)環(huán)節(jié)因?yàn)樗鼤?huì)引出后面“后臺(tái)管理模塊”的設(shè)計(jì)也讓整個(gè)交易安全度更真實(shí)。裝備的修改需要加一個(gè)限制只有狀態(tài)為草稿或待審核被駁回時(shí)才允許編輯unique_identifier、價(jià)格等關(guān)鍵信息。一旦進(jìn)入在售狀態(tài)就只允許修改描述、圖片這類不影響交易安全的字段。否則買家和賣家可能在交易中因信息變更發(fā)生爭(zhēng)執(zhí)。3.4 購物車與下單流程購物車在數(shù)據(jù)庫層面的設(shè)計(jì)有兩種方案基于內(nèi)存緩存Redis或基于數(shù)據(jù)庫表。前者訪問速度快但不穩(wěn)定適合海量非關(guān)鍵數(shù)據(jù)后者更可靠適合需要長(zhǎng)期保存、跨設(shè)備同步的場(chǎng)景。做項(xiàng)目的話我建議用數(shù)據(jù)庫表字段就是用戶ID、裝備ID、加入時(shí)間、選中狀態(tài)。金額隨時(shí)以裝備當(dāng)前在售價(jià)為準(zhǔn)。購物車到訂單的轉(zhuǎn)換要注意幾個(gè)細(xì)節(jié)下單不是直接創(chuàng)建訂單而是生成“待支付訂單”狀態(tài)為PENDING。創(chuàng)建訂單時(shí)要檢查裝備狀態(tài)并鎖定裝備。怎么鎖定把裝備狀態(tài)改為鎖定或者用一個(gè)單獨(dú)的交易鎖定表記錄當(dāng)前哪個(gè)訂單正在占用它。我推薦后者因?yàn)樵阪i定期間如果交易取消只需要?jiǎng)h除鎖定記錄恢復(fù)在售即可不用動(dòng)裝備本身的神秘學(xué)狀態(tài)。而且“裝備被某人鎖定”對(duì)交易平臺(tái)是一個(gè)很自然的業(yè)務(wù)概念。定單金額要記錄“裝備當(dāng)前價(jià)格”但前端Javascript傳過來的金額絕對(duì)不能信。所有價(jià)格必須從后端讀取前端只傳裝備ID和數(shù)量。不然別人改一下請(qǐng)求Body就能一分錢買裝備。4. 前端Vue的實(shí)現(xiàn)要點(diǎn)頁面好寫狀態(tài)管理才是重頭4.1 項(xiàng)目搭建與路由設(shè)計(jì)前端我直接采用Vue 3 Vite Pinia Vue Router Element Plus。這套組合現(xiàn)在非常主流Vite速度比Webpack快得多Element Plus做管理端和交易頁面都很方便。路由設(shè)計(jì)遵守“頁面組件業(yè)務(wù)模塊”的原則/ 首頁推薦商品、搜索框 /goods/:id 裝備詳情頁 /search 裝備搜索列表 /cart 購物車 /orders 我的訂單 /orders/:id 訂單詳情 /wallet 我的錢包 /publish 發(fā)布裝備 /login 登錄注冊(cè) /admin/* 后臺(tái)管理所有需要登錄的頁面統(tǒng)一用路由守衛(wèi)做攔截判斷Pinia里有沒有Token沒有就跳登錄。這里有個(gè)很多人忽略的問題不要只在前端做登錄攔截后端接口也要做權(quán)限控制前端攔截只是用戶體驗(yàn)后端攔截才是安全底線。4.2 API封裝與鑒權(quán)攔截我習(xí)慣在src/utils/request.js里封裝一個(gè)Axios實(shí)例統(tǒng)一做三件事設(shè)置基礎(chǔ)URLVITE_API_BASE_URL環(huán)境變量。請(qǐng)求攔截器從Pinia或localStorage里取Token加到請(qǐng)求頭。響應(yīng)攔截器處理業(yè)務(wù)錯(cuò)誤碼、401登出、403無權(quán)限提示。裝備列表頁這種高并發(fā)數(shù)據(jù)量不小的頁面還需要考慮搜索防抖、loading狀態(tài)、空數(shù)據(jù)展示這些雖然都是小事但直接影響使用體驗(yàn)。4.3 裝備列表與詳情頁實(shí)現(xiàn)裝備列表頁的設(shè)計(jì)核心是“篩選器數(shù)據(jù)列表”。篩選維度包括游戲、服務(wù)器、裝備類型、價(jià)格區(qū)間、排序方式價(jià)格升序/降序、最新發(fā)布、瀏覽量最高。這些條件組成查詢字符串傳給后端后端用Django的ORM做filter和order_by。這里要注意篩選條件不能全用JS內(nèi)存過濾。如果裝備數(shù)據(jù)量大或者后續(xù)接入幾十萬條數(shù)據(jù)前端一次性拉全量會(huì)讓瀏覽器卡死。正確做法是后端分頁條件過濾前端每改變一次篩選條件就重新請(qǐng)求接口。分頁接口建議返回{total, page, results}結(jié)構(gòu)前端配合分頁組件使用。詳情頁除了展示基本信息外重點(diǎn)要展示“交易流程說明”“賣家信用”“裝備唯一性標(biāo)識(shí)”。這些是增強(qiáng)買家信任度的關(guān)鍵。我還會(huì)在頁面底部做“賣家其他在售裝備”的推薦模塊提升平臺(tái)的成單率。4.4 購物車與訂單交互購物車的核心狀態(tài)管理放在Pinia里包括items、selectedIds、totalPrice。添加商品到購物車時(shí)調(diào)用后端接口然后更新Pinia的state。這里要注意數(shù)量裝備是唯一性商品每件的數(shù)量只能是1。如果有平臺(tái)有“游戲幣”之類的可批量商品才需要數(shù)量和規(guī)格。訂單頁的交互要“清晰直白”。支付按鈕點(diǎn)擊后不能只調(diào)一個(gè)接口就說支付成功而是要調(diào)起“虛擬支付確認(rèn)彈窗”用戶二次確認(rèn)后再調(diào)訂單支付接口。支付接口返回成功后前端立刻展示“支付成功等待賣家發(fā)貨”的狀態(tài)。整個(gè)過程要給用戶明確的進(jìn)度反饋這也是商城產(chǎn)品和普通后臺(tái)系統(tǒng)最大的區(qū)別。5. 前后端聯(lián)調(diào)與關(guān)鍵技術(shù)難點(diǎn)5.1 跨域、代理與聯(lián)調(diào)環(huán)境開發(fā)階段前端跑在5173端口后端跑在8000端口屬于跨域。解決辦法有兩種后端Django配置CORS_ALLOW_ALL_ORIGINS開發(fā)環(huán)境可以用生產(chǎn)環(huán)境必須關(guān)閉并指定白名單。前端Vite配置server.proxy把/api代理到后端地址。這樣在開發(fā)環(huán)境就相當(dāng)于同源請(qǐng)求不需要后端動(dòng)CORS。我推薦第二種方案因?yàn)樗N近生產(chǎn)環(huán)境的部署形態(tài)。Nginx反代后前端和后端也在同一個(gè)域下只是路徑不同。聯(lián)調(diào)永遠(yuǎn)會(huì)出現(xiàn)“我以為”的情況我以為后端返回的是game_name后端用的是gameName我以為創(chuàng)建訂單傳goods_id后端接收的是equipment_id。所以接口文檔一定要在聯(lián)調(diào)前定好。建議使用Apifox或Postman先跑通后端接口再讓前端對(duì)接能省掉大量扯皮時(shí)間。5.2 裝備“在售狀態(tài)”的并發(fā)控制這個(gè)坑是真實(shí)發(fā)生過很多次的。兩個(gè)買家?guī)缀跬瑫r(shí)點(diǎn)擊購買同一件裝備如果不加控制兩個(gè)人都下單成功了但裝備只有一件。解決方案有幾種等級(jí)最基礎(chǔ)的是事務(wù)加鎖。使用MySQL的SELECT ... FOR UPDATE對(duì)裝備行加鎖事務(wù)期間其他事務(wù)無法讀取該行。流程是開啟事務(wù)查詢裝備狀態(tài)并加鎖確認(rèn)在售創(chuàng)建鎖定記錄提交事務(wù)。第二個(gè)下單請(qǐng)求會(huì)阻塞到第一個(gè)事務(wù)提交然后重新讀取裝備狀態(tài)發(fā)現(xiàn)已經(jīng)被鎖定就會(huì)下單失敗。如果用Django ORM具體是from django.db import transaction from django.db.models import F with transaction.atomic(): equipment Equipment.objects.select_for_update().get(idequipment_id) if equipment.status ! Equipment.STATUS_ON_SALE: raise APIException(裝備已下架或售出) equipment.status Equipment.STATUS_LOCKED equipment.save() Order.objects.create(...)注意select_for_update只有在事務(wù)中才生效所以要配合transaction.atomic()使用。而且這條加鎖的SQL需要數(shù)據(jù)庫支持行鎖MySQL的InnoDB引擎沒問題。第二級(jí)是Redis分布式鎖適合高并發(fā)場(chǎng)景。但做畢業(yè)設(shè)計(jì)或中小型平臺(tái)數(shù)據(jù)庫行鎖完全夠用。還有一個(gè)容易被忽略的點(diǎn)數(shù)據(jù)庫的隔離級(jí)別和死鎖。鎖的順序一定要一致比如先鎖裝備記錄再更新訂單記錄避免兩個(gè)事務(wù)互相等待。5.3 虛擬支付與訂單狀態(tài)一致性這個(gè)項(xiàng)目一般不用接入真實(shí)的第三方支付成本太高我采用兩種常見方式模擬支付網(wǎng)關(guān)自己寫一個(gè)支付接口用戶點(diǎn)擊支付后直接返回成功然后實(shí)現(xiàn)“充值到錢包”的模擬充值接口。接入沙箱環(huán)境有些支付渠道有商戶沙箱可以模擬真實(shí)支付流程。我更推薦“模擬支付錢包”這套方案。流程是這樣的用戶充值到錢包可以完全模擬比如直接調(diào)“充值接口后端增加錢包余額和流水”然后訂單支付時(shí)從錢包余額扣款扣款前要檢查余額充足不足則提示去充值。這個(gè)過程涉及兩次賬變余額減少和訂單支付。必須放在同一個(gè)事務(wù)里否則可能錢扣了但訂單沒支付成功。在并發(fā)扣款的場(chǎng)景里也要用select_for_update鎖錢包行不然用戶同時(shí)在兩個(gè)頁面支付可能把余額扣成負(fù)數(shù)。學(xué)習(xí)階段能注意到這個(gè)問題項(xiàng)目檔次會(huì)提升很多。5.4 圖片上傳與靜態(tài)資源裝備截圖、用戶頭像都要上傳。開發(fā)時(shí)可以把圖片保存到本地服務(wù)器的media目錄通過Django配置URL映射直接訪問。但生產(chǎn)環(huán)境這么做會(huì)浪費(fèi)磁盤而且不方便擴(kuò)展。我一般把圖片傳到OSS對(duì)象存儲(chǔ)或者云存儲(chǔ)Django后端只是生成一個(gè)帶簽名的上傳憑證前端直接直傳OSS。這樣后端不用接文件流服務(wù)器性能壓力小也避開了Django處理大文件的隱患。如果在本地部署只用服務(wù)器磁盤也要做幾個(gè)基本處理校驗(yàn)文件大小、限制圖片類型jpg/png/webp、給文件名加UUID防止重名、生成縮略圖。不然用戶傳一張20MB的高清截圖頁面直接卡死。6. 管理員后臺(tái)與安全要點(diǎn)6.1 Admin后臺(tái)功能設(shè)計(jì)后臺(tái)管理是整個(gè)系統(tǒng)不可缺少的部分。玩法有兩種一是直接用Django自帶Admin優(yōu)點(diǎn)是不用寫代碼就能管理所有表適合內(nèi)部使用或快速驗(yàn)證二是單獨(dú)做一個(gè)Vue管理端符合商業(yè)項(xiàng)目形態(tài)。我強(qiáng)烈推薦第二種作為完整項(xiàng)目交付因?yàn)槊嬖嚮虼疝q時(shí)一個(gè)“平臺(tái)管理后臺(tái)”的存在感完全不一樣。管理端功能包括裝備審核查看待審核裝備列表通過或駁回。用戶管理封禁用戶、認(rèn)證賣家資質(zhì)。訂單管理查看所有訂單處理退款、仲裁。系統(tǒng)統(tǒng)計(jì)今日交易額、新增用戶、在售裝備數(shù)。后端給管理端單獨(dú)開一套接口并用權(quán)限區(qū)分普通用戶接口和管理員接口最好用不同的權(quán)限類甚至路由前綴。可以用/api/admin/作為前綴驗(yàn)證用戶是否is_staff或具有對(duì)應(yīng)權(quán)限。6.2 接口安全與防作弊交易平臺(tái)里面最怕兩類問題一是刷單二是越權(quán)操作。防刷單下單、支付、提現(xiàn)等關(guān)鍵操作必須在后端驗(yàn)證操作頻率??梢院?jiǎn)單地用Redis做接口限流比如同一個(gè)用戶10秒內(nèi)只能下3單。如果更進(jìn)一步可以校驗(yàn)瀏覽器指紋、設(shè)備特征。防越權(quán)查看或修改別人的訂單時(shí)必須校驗(yàn)訂單的buyer_id或seller_id與當(dāng)前登錄用戶一致。很多初學(xué)者寫的接口只要傳一個(gè)訂單ID就能查看所有訂單這是嚴(yán)重漏洞。Django DRF中可以重寫get_queryset只返回當(dāng)前用戶的訂單或者在視圖里顯式判斷。提現(xiàn)還要做二次密碼或短信驗(yàn)證。如果項(xiàng)目沒有接入真實(shí)短信至少做一個(gè)“提現(xiàn)密碼”功能用戶提現(xiàn)時(shí)必須輸入才能提走余額。6.3 密碼存儲(chǔ)與傳輸安全密碼不能明文保存也不能用簡(jiǎn)單的MD5。Django自帶的make_password默認(rèn)使用PBKDF2算法安全性足夠。JWT的密鑰必須放在環(huán)境變量或配置文件中不能提交到Git倉庫。所有業(yè)務(wù)接口都要使用HTTPS本地開發(fā)除外。這些都是面試時(shí)高頻考查的點(diǎn)項(xiàng)目里做了會(huì)非常加分。還有一個(gè)容易忽視的隱患裝備描述里的XSS。如果用戶輸入裝備描述時(shí)不做一些轉(zhuǎn)義處理又被后臺(tái)或詳情頁直接渲染HTML可能被植入惡意腳本。建議前端渲染富文本時(shí)使用能夠消毒的庫或者在保存時(shí)去掉危險(xiǎn)的標(biāo)簽和事件屬性。7. 部署方案與上線經(jīng)驗(yàn)7.1 部署架構(gòu)部署不是一個(gè)必須做的東西但如果項(xiàng)目要展示一個(gè)能在公網(wǎng)訪問的地址遠(yuǎn)比本地演示有說服力?;A(chǔ)部署方案一臺(tái)Linux云服務(wù)器2核4G足夠。服務(wù)器上安裝Nginx、MySQL、Redis、Python環(huán)境和Node環(huán)境。后端使用Gunicorn啟動(dòng)Django應(yīng)用監(jiān)聽本地8000端口。前端執(zhí)行npm run build把dist目錄文件放到Nginx指定web路徑下。Nginx配置訪問/api時(shí)反向代理到8000端口訪問/時(shí)返回前端靜態(tài)文件。這里貼一份精簡(jiǎn)的Nginx配置示例實(shí)際使用中需要替換域名、證書server { listen 80; server_name your-domain.com; # 前端靜態(tài)文件 root /var/www/equipment_mall/dist; index index.html; # API反向代理 location /api/ { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # 圖片等靜態(tài)資源如果存在本地 location /media/ { alias /var/www/equipment_mall/media/; } }7.2 環(huán)境變量與配置管理項(xiàng)目中的所有敏感信息像數(shù)據(jù)庫密碼、JWT密鑰、OSS密鑰都要用環(huán)境變量或.env文件管理Django端可以用python-decouple或django-environ讀取前端用Vite的.env文件管理。有一個(gè)實(shí)際坑如果前后端部署在不同的域名前端請(qǐng)求的baseURL必須用完整地址。如果部署在同一個(gè)Nginx下建議使用相對(duì)路徑/api這樣能減少很多CORS問題。部署時(shí)還要記得執(zhí)行python manage.py collectstatic把Django的靜態(tài)文件收集到指定目錄并用Nginx配置路由。這一步漏了后臺(tái)Admin的樣式會(huì)全部丟失。7.3 上線前檢查清單上線前我通常會(huì)花幾個(gè)小時(shí)做一遍完整體檢這里也給你列出常見項(xiàng)用測(cè)試賬號(hào)走一遍完整的交易流程發(fā)布裝備 - 審核 - 買家下單 - 支付 - 賣家發(fā)貨 - 買家收貨 - 提現(xiàn)。驗(yàn)證并發(fā)下單的兜底邏輯開著兩個(gè)瀏覽器同時(shí)對(duì)同一件裝備下單。檢查所有接口是否帶鑒權(quán)尤其后臺(tái)管理接口。檢查數(shù)據(jù)庫備份是否配置建議每天凌晨自動(dòng)備份??捶?wù)器日志確認(rèn)日志中沒有數(shù)據(jù)庫密碼、Token等敏感信息。把前端頂部的明文錯(cuò)誤提示改成統(tǒng)一toast避免把數(shù)據(jù)庫報(bào)錯(cuò)暴露給用戶。8. 踩坑記錄與最后的心得8.1 幾個(gè)讓我印象特別深的坑我最早寫這個(gè)項(xiàng)目時(shí)第一個(gè)坑就是“購物車沒用后端存儲(chǔ)只用前端數(shù)組”。后來刷新頁面購物車沒了用戶罵聲一片。后來改為后端購物車表在任何設(shè)備上登錄同一賬號(hào)購物車都能同步。這個(gè)改動(dòng)雖然不復(fù)雜但暴露了我一開始對(duì)需求的理解不夠。第二個(gè)坑是裝備狀態(tài)并發(fā)。當(dāng)時(shí)沒有加鎖自己測(cè)試時(shí)開兩個(gè)頁面同時(shí)買同一件裝備結(jié)果兩個(gè)訂單都創(chuàng)建成功裝備狀態(tài)也被改了兩次。后來老老實(shí)實(shí)用事務(wù)和select_for_update解決了。這個(gè)bug讓我明白一個(gè)道理交易系統(tǒng)的邏輯永遠(yuǎn)不能依賴前端按鈕的點(diǎn)擊順序。第三個(gè)坑是支付回調(diào)沒做冪等。雖然項(xiàng)目用的是模擬支付但我把“支付成功”處理邏輯寫在一個(gè)接口里用戶連續(xù)點(diǎn)擊兩次支付結(jié)果產(chǎn)生了兩條流水。后來在訂單支付記錄表里加上訂單ID和渠道流水號(hào)唯一約束重復(fù)請(qǐng)求進(jìn)來直接拋出異常問題就消失了。還有一個(gè)讓人頭大的問題圖片上傳后開發(fā)環(huán)境能顯示部署后圖片全掛。查了半天是Nginx的/media/路徑?jīng)]配置前端訪問/media/xxx.png時(shí)被當(dāng)成前端路由直接返回了index.html。像這種小問題調(diào)試時(shí)需要同時(shí)看瀏覽器網(wǎng)絡(luò)請(qǐng)求和后端日志才能快速定位。8.2 給準(zhǔn)備做這個(gè)項(xiàng)目的人一些建議如果你時(shí)間比較緊比如一兩個(gè)月要交建議先按這個(gè)順序做先畫出核心業(yè)務(wù)流程圖明確裝備的每一個(gè)狀態(tài)由誰觸發(fā)、怎么流轉(zhuǎn)。設(shè)計(jì)數(shù)據(jù)庫表先只建用戶、裝備、訂單、錢包、流水五張核心表把基本交易跑通后再擴(kuò)展購物車、收藏、后臺(tái)。后端的核心接口建議先寫好裝備發(fā)布、裝備列表、下單、支付、訂單狀態(tài)列表因?yàn)榍昂蠖寺?lián)調(diào)時(shí)這些接口的依賴程度最高。前端優(yōu)先做裝備列表和詳情然后是購物車和訂單管理后臺(tái)可以最后再做。如果你精力足夠建議往這幾個(gè)方向做擴(kuò)展接入真實(shí)支付沙箱、使用WebSocket做實(shí)時(shí)消息通知比如賣家發(fā)貨提醒、訂單狀態(tài)變化、接入ElasticSearch做裝備搜索、增加賣家信譽(yù)評(píng)價(jià)體系。這些東西每一塊都能講出很多細(xì)節(jié)寫在簡(jiǎn)歷上也會(huì)讓項(xiàng)目含金量高很多。我個(gè)人做這個(gè)項(xiàng)目最大的體會(huì)是代碼本身占的精力其實(shí)不到一半另一半全花在業(yè)務(wù)規(guī)則的思考和邊界情況的處理上。當(dāng)你把“買家和賣家同一件裝備同時(shí)下單”“錢包余額被兩個(gè)訂單并發(fā)扣款”“支付成功但網(wǎng)絡(luò)超時(shí)后端實(shí)際成功”這類場(chǎng)景都想清楚并處理好時(shí)你的工程能力已經(jīng)超過很多工作一兩年的人。這套系統(tǒng)做完之后如果不滿足于現(xiàn)狀把它迭代成一個(gè)帶聊天、帶信用評(píng)級(jí)、帶自動(dòng)發(fā)貨的真正社區(qū)化平臺(tái)又是一個(gè)更有趣的挑戰(zhàn)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美1区二区三区公司| 精品视频一区二区| 另类图片五月天| 国产精品一区二区手机看片| m欧洲一级午老| 欧美色图亚洲特色| 日产欧美电影一区二区三区| 91色伦| 人人爽夜夜操| 色妺妺在线视频| 精品国产肉丝袜在线拍国语| 亚洲三区视频| www.久久制服糖| 成·人免费午夜在线观看| 本道在线| 大香蕉综合在线| 综精品久久久aaaa| 日韩三级久久久| 99热这里只有精品9| 欧美性爱十八禁| 亚洲另类小说卡通动漫| 午夜福利无毒不卡| 粉嫩av平台| 国产精品农村妇女| 97在线免费观看视频| 欧美色乱| 国产精品精品系列在线观看| 欧美激情综合网| 啪啪啪男女亚洲中文字幕99| 亚洲欧洲日韩中文字幕一区| aa片毛片| 国产女人和拘做爰视频| 免费啪啪一级视频| 污啪啪啪视频| 欧洲天天在线| 中国黑人三级片网站上区| 人妻天天夜夜爽一区二区| 秋霞曰韩R级| 懂色AV蜜臀无码精品APP| 国产浮力影院第1页| 亚洲综合码| 亚洲欧美色图小说| 97欧美精品综合| 最新一二三区视频| 日韩午夜国产| 97天天弄| 99热这里都是精品| 一级片视频啪啪| 日B操| 久久无码成人| 日韩午夜精品一区二区三区电影| 92人人操人人| 熟女中出视频| 超碰一区二区| 欧美激情在线观看视频| 永久免费av无码网站国产app| 麻豆国产精品午夜视频| 亚欧性爱ab| 中文字幕在线日亚州9| www.99视频| 超碰综合色| 亚洲资源网| 久久久一二三四区| 91av熟女人妻| 日韩不卡a级视频专区| 国产成人网站在线观看| 国产白领连续中出在线观看| 熟女精品一区二区在线观看| 亚洲色图日韩丝袜制服一区二区五月在线 | 两性色网| 台湾佬激情综合| 久久熟妇五十路一区| 91精品免费| 97ai亚洲| 国产乱伦性爱区| 8050午夜少妇无码| 性色中出| 操一操摸一摸| 大香蕉免费乱伦视频| 久久久爆乳翘臀一线天伦理视频| 综合欧美亚洲| 国产成人精品日本亚洲语言| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 青娱乐国产精品| 伊人久久大香大香线蕉中文| 国产25页| 国产日韩手机视频在线| 亚洲色图久久成人| 欧美性色欧美| 囯产乱伦一区二区三女 | 啊嗯嗯啊好大好爽| 日日狠狠久久偷偷色综合免费| 中文字幕亚洲在线一区| 2010男人的天堂| 亚洲无码超碰免费| 欧洲色| 国产精品色哟哟| 色图四区| 国产成人在线观看综合| 天天干一区二区| 99久在线精品99re8蜜桃| 9久9久| 国产丝袜啪啪| 日本三级日本三级99| 动漫av中文| 国产日韩久久| 岛国AV一区二区电影| 天天综合中文字幕 91| 8050午夜少妇无码| 日韩不卡一二三四| 久久久久免费看少妇A片特黄| 好吊妞转入那个网| 视频一区二区免费在线| 99爱久久视频频| 久久久一区二区三区四区五区| 全球成人中文在线| 欧美熟妇精品黑人巨大91| 亚洲综合精品国产一区| 人妻无码一区二区三区久久99| 精品国产一区二区三区香蕉欧美| a人欧美综合天堂麻豆| a片自拍直播视频| 亚洲视频,小说| 亚洲欧美日韩免费电影| 我中文字幕6区| 强奸乱伦αv片| 久操| 日韩 成人 有码| 九九热最新| 久久成人午夜狠狠| 欧美热图99| 老熟妇一区二区三区…| 日本欧美中文字幕| 99久国产精品午夜性色福利| 日韩不卡码| 综合操逼| 一区二区三区国产在线播放| 宗合情欲网| 99亚洲精品| 蜜臀99999| 欧美综合娱乐久久| 另类老少妇| 日本在线一二| 亚洲激情综合另类男同| 亚洲天堂资源| 国产精品天美传媒| 成年人黄色小视频网站| 97资源久久| 欧美精品偷拍| 97电影院超碰| 影音先锋视频在线| 中文字幕乱码在线观看| 后入福利| 91网站视频在线观看| 夜间福利片1000无码| 久久东京热成人| AV天堂电影网| 熟女六十路| 欧美天天综合| 国产中文字幕在线观看| 国产精品对白内射| 99视频只有精品| 久操网无码在线| 人妻91少妇| 鸥美插入视频| 刺激性视频黄页| 国产精品无码久久久久2028| 欧美性天天| 欧美性综合| 亚洲av夫妻操穴网| 久久久激情| 亚洲,日韩,欧美,成人播放| 黄色工厂这里只有精品| 在线小说视频一区| 天天激色| 国产十八禁视频| 97超碰国产亚洲精品资源| 免费一级黄色录像影片| 操逼操2| 碰人碰碰人人开房人肉| 欧美97日韩精品| 91久久精品国产| 国产一区二区三区影片| 亚洲五码一区二区三区| 日韩精品国产一区二区| 久久婷婷电影网| 91亚洲图片| 亚州五月| 久9无限国产| 激情婷婷丁香| 久久草视频污视频| 久欲AV| 四虎884a| 啊啊啊啊啊啊啊啊啊啊在线观看| 欧美 传媒 麻豆 日韩 偷拍| 成年男人的天堂| 混色激情av| 久久曰曰| 欧美男女午夜啪啪| 丝袜六区| 日日干日日操五月天伦理视频| 午夜免费视频1000| 九色 人妻 大香蕉| 亚洲不卡不卡中文字幕不卡| 亚洲天堂色图| 综合激情97| 中文字幕乱碼在线| 一区二区三区日韩欧美| 精品乱子一区二区三区99| 国产少妇与亚洲av| 久久一区无码| 1204金沙人妻懂旧版免费| 男人精品天堂一区| 亚洲综人| 无码天堂| 天天狠操| 伊人久久婷婷| 7月婷婷综合| 夜夜操老骚逼视频网站| 久9久精品视频| 蜜乳av一区二区三区| 久男人久久| 97在线观| 伊人网青青| 亚洲一级性爱视频免费看| 亚洲性爱免费电影| 不卡啪啪视频| 亚州操操穴网| 2020中文字幕在线| 精品熟女呻吟久久91| 91免费看一区二区三区| 人妻人人做人人澡人人爽欧美一区| av日韩国产一区二区| 国产亚洲日本精品在线| 日韩乱码Av| 啊操爽品善一区二区三区| 欧美国产有色电影| 精品国产乱码久久久久久蜜臀| 国产h小视频在线观看免费| 亚洲av综合伊人久久| 亚洲图片欧洲图片aⅴ| 天天看,天天做| 中文字幕大片三级狠狠干| 欧美韩国你懂得在线| 亚洲精品国产拍免费91在线| 天天干干天天干干| 玖色AV| 日日干男人的天堂| 中文字幕在线免费观看2| 黑人无码一区二区| 嗯嗯啊啊好疼| 亚洲无码太久| 亚洲性爱高潮影院| 麻豆色99999| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 国产91啪| 蜜臀在线免费观看在线免费观看| 久久原创中文| 亚洲一区操| www.久久爱| 欧美亚洲se91| 国产欧美日韩一区二区三区| 东京太热久久久| 91熟女视频网| 亚洲最新a在线观看| 久久发布国产伦子伦精品| 国产日韩中文字幕欧美| 亚洲一本大道中文字幕无码在线| 78久久久| yiqicaoav| 视频分类 国内精品| 天天日天天射天天干| 亚洲丝袜综合| 久久精品一区二区三区不卡| 老鸭窝在线视频播放| 国产大陆天天艹| 国产精品久久发布| 欧美色www亚洲国产阿娇要播| 色丁香五月婷婷| 午夜精品久久久久久久| 秋霞免费AV| 中文字幕-区二区三区四区视频中国| 久9精品| 91Chinese在线| 熟女91网| 美女黄色一级A视频| 精品国产乱码久久久影院| 操逼无码一区| 久久超碰av在线| 亚洲欧洲综合av在线| 啊啊啊好舒服好爽啊啊啊视频| 久久这里只| 日本欧美国内在线| www.男人的天堂| 婷婷五月天成人| 综合网少妇| 长长久久免费视频| 日本成人在线不卡一区二区三区| 1024亚洲中文字幕久在线看片你懂的| 欧美牲| 中文字幕少妇色| 日本潮催一卡操| 裸体女人草逼视频播放一区,二区,三区,四区,五区| 国产精品人妻无码久久久老鸭窝| 欧美在线l亚洲| 国产精品一区二区校花| 97超碰超欧美。| 亚洲一区二区性爱电影| 女生91网站| 青青色综合| 中文字幕在线观看永久| 青草伊人久久| 熟妇最新先锋一二三区| 一级特黄aaa大片在线观看成人一级片在线观看 | 九九在线视频| 人人干人人操人人爱| 日夜干射色啊| 国内外色色色色色成人视频| 久久伊人最新网址视频| 免费看污网址| 久久久久13| 中文色综合| 亚洲熟妇AV日韩熟妇在线| 水野优香在线观看| 91精品国产日韩欧美综合| 久久久久久九九九九九九| 超踫中文字幕| 亚洲欧美在线观看2021| 国产97免费视频| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 99国产精品免费| 色综合色综合网| 国产精品又黄又猛又粗| 日本亚欧爱爱| 97超碰在线资源网站| 另类天堂| A V视频日本| 日本久久超碰| 98福利在线视频| 精品夜夜澡人妻无码| 国产亚洲精品美女久久久m| 97天天操| 一级免费精品| 91成人社区| 丰满人妻一区二区三区免费,| 99这里只有精品国产| 国产视频第二页| 无码人妻系列少妇| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 无码精品人妻一区二区三区妖精| 91在线视频国产网站| 天天草AV| 97草草| 日日夜夜国产综合| 亚洲精品蜜桃久久久一区二区三区| 美女9118禁| 国产肏屁眼视频| 人人搞人人插人人操| 欧美综合 站| 久7色| 一区在线国产播放| 欧美黑人精品在线播放| 日本影视久久免费| 超碰在线一区二区| 91精品导航| 国产不卡的视频| 性爱欧美五月| 久久久网一区| 人人妻人人色| 男人干美女| 英伦大奶子熟妇吊带| 久久久蜜桃一区二区三区| 精品国产久热在线观看| 国产69精品久久久久99尤物| 亚欧成人综合影院| 成人麻豆av电影网站| 2018天天日天天日| 综合天天。| www.色99| 男女一级A片大黄,一进一出| 新婚人妻扶着粗大强行坐下| av午夜影院在线播放| 色网在线视频观看免费| 在线观看av区| 天天爽天天爽| 97超碰美国| 中文字幕一区 二区三四五 区日 日骚| 色999五月色| 动漫爆乳3D奶水一区在线观看| 久久亚洲AV无码专区国产精品 | 成人AV超碰免费在线| 亚洲影院成人| 1级午夜影院费免区| 强奸乱伦AV网址| 特级特黄一级毛片免费| 亚洲欧洲精品视频发布| 天天操综合网| 亚洲精品骚逼| 欧美啪啪啪91| 亚洲综合20p| 国产综合日韩伦理| 午夜福利视频在线一区| www.99在线| 91天天日| 精品久久9| 日日夜夜骑| 在线αⅴ| 久草免费在线一区二区| 国语人妻精彩刺激| 亚洲吊色| 好爽视频在线观看| 人人操人人操人人人操| 欧美黄片视频在线观看免费 | 日本不卡一二区| 日本操逼视频在线| 另类小色呦| 天天操av懂色| 91综合天天看| 国产辣妈在线视频福利| 国产一区二区三区导航| 五月天春色激情网| 国产白丝网站| 色色色网站| 超碰调教97| 国产热av| 超碰在线欧美性爱激情| 国产又色又爽又舒服的三级视频| 草伊人高潮喷水超碰| 黄久久| 热无码中文亚洲H一道本一区二区| 日韩 欧美 另类 人妻| 精品 码产区一区二-1080P高清在线www-B029AV | 久久精品天美| 蜜臀久久99精品久久久久久婷婷| 国产精品无码av在线| 夜夜中出国产| 国产精品欧美在线观看| 国模无码一区二区三区在线| 色好看av| 久久啊啊啊| 久久国内| 色香欲天天天天综合色| 亚洲国产精品V?在线播放| 丁香色色网| 夜色97| 国产精品久久久久久久无码AV| 天天看,天天做| 亚州色图欧美| 26uuu成人影片| 国产在线不卡导航| 极品色| 国模精品一区二区三区苹果色戒| 欧美夜夜骑视频| 夜草网站| 一个人在线看的黄色电影网站| 熟女熟妇一区二区三四区| 老司机射| 亚洲天天精品| www.久久久久| 国产成人五月天丁香花| 亚洲欧美激情在线视频| 欧美图片校园春色| 99九九精品| 欧洲色综合| 国产强奸超碰AV| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 91偷拍欧美亚洲| 亚洲国产精品成人久久蜜臀| 午夜精品久久久久久久男人的天堂| 久久精品女同亚洲女同13| 亚洲国产成人精品无码专区| 日韩精品人妻中文字有码在线| 18禁无码永久免费无限制| 国产精品经典一卡久久久 | 96精品在线| 欧美一级二级三级| 嗯啊啊啊轻点视频 | 男人的天堂一区三区| 精品一区二区久久| 国产亚洲精品自在线亚洲情侣| 综合网亚洲1| 色色操| 欧美日韩在线小说| a人欧美综合天堂麻豆| 亚洲综合另类小说色区亚洲成av人片在www| 天天综合香 ld视频| 亚洲免费成人在线高清无码视频 | 自拍偷拍亚洲熟女妇人精品| 看看日B真人视频| 91精品国产高清久久久久久,亚洲成人| 亚洲情色 无码专区| 人人爱操| 肏逼福利网站| 九九九九欧美| 丁香五月色| 香蕉欧美| 加勒比av网| 东京热激情视频一二三区| 欧美成人免费在线观看| 乱久久久| 黄色AV影视| 黄色电影在线播放综合网站| 综合色久欲| 小草精彩毛片| 成人性爱高清视频免费看| 无套后入双马尾| 99re在线观看| 91在线色综合| 国产精品婬乱一级毛片彝族| 日韩97P| www.男人天堂| 欧美专区第一页| 一本一道vs波多野结衣| 精品九九| 日韩99999| 国产久久久久影院老熟女| 调教熟妇 久久久久久| 天堂а√在线最新版在线| 99re黄| 人妻五十路在线| 91 手机在线播放 绯色| 伊欧美综合视频| 乱抡国产91| 无码粉嫩白虎一线天b区| 色av中文字幕| 九九久久首页| 婷婷久久综合| 久草福利在线资源站| 亚洲成人精品在线一区| 超碰色综合| 久区视频| 亚洲欧美内射| 97jingpin| 成人一区二区三区四区| 在线观看十八禁| 久久激情视频| 天美麻花大全视频| 无码在线亚洲| 人人潮人人摸| 自拍偷拍 日韩欧美| 久久加勒比| 精品国产乱码久久久久久久久久毛片| 伊人色综合欧美| 热久久国产精品视频大陆精品| 欧美精品成人亚洲| 六月婷激情福利天堂69| 熟妇熟女视频一区二区三区| 亚洲人妻AV| 91麻豆va国产精品| 婷婷中文字幕| 一二三四免费视频| 中文字暮97| 亚州少妇| 91色女| 99久久无色码| 97高清啪啪| 熟妇亚洲一区二区三区| 97色爱| 国产精品色约约| 很狠操| 久久久少妇诱惑精品视频| 日本顶级天天操狠狠操夜夜操中文字幕| 欧美熟妇操操视频| 天天α片| 少妇高潮喷水无套久久久久久| 天天舔天天日天天射| 亚洲污污网站| 综合亚州欧美| 91在线视频国产网站| 国产又黄又爽| 国产高清精品一区二区三区毛片| 国产传媒操逼视频| 欧美 亚洲 偷拍自拍| 99热这里只有精| 四虎影视在线| 97视频900| 国产丁香精品露脸视频| 亚洲丝袜诱惑| 在线播放免费av福利片| 国产 v乱码一区二| 韩国一区二区精品亚洲| 玖玖蜜臀资源网| 97亚洲国产| 欧在线一二区| 做爱A级亚欧| 五月丁香激情综合| 不卡九肏| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 91天堂| 欧美Ⅴ性爱| 一区操逼日比视频| 丰满人妻-区二区三区免费| 综合网欧| 91丰满| 免费1级a做爰片观看| 欧美疯狂做爰xxxx| 欧美色图偷拍另类| 97ai亚洲| 18禁免费视频| 国产人妻精品久久久一区二区三区| 亚洲色9| 91久久国产精品| 国产精品人人爽人人做可爱福利 | 校园春色五月天| 淫荡少妇免费| 99999精品视频| 精久久久| 亚欧成人综合影院| 美女露胸露尿口| 少妇特黄一区二区三区| {男男暴菊gay无套网站| 99久久综合| 男人天堂免费| 久操com| 后入 亚洲 美女 射| 久久久九| 伊人影院综合是一个与深夜成人在线| 久久久久久久 九九九九九九九 | 久久五月婷| 久久亚码| 日韩在线一区高清在线| 九九久久久久久爱| 久久东京热久久| 婷婷在线精品| 九九九国产精品| 日本操大逼| 91性高| 欧美成熟性爱精品| 黄页18禁| 午夜精品久久久| 开心五月天激情网| 九九九久久久W精品| 被体育老师抱着c到高潮| 中文字幕精品久久久久人妻红杏ⅰ| 久久97| 青青国产精品在线| 欧美天天综合网| 91麻豆天美国产欧美| 精品美女少妇一区二区| 久久婷婷伊人| 蜜臀99久| 日韩人妻资源网| 国产精品网址| 欧美乱色| 强奸乱伦 亚洲一区| 搡老女人老妇女老妇老熟女怎么读| 麻豆av一区二区| 99热精品在线| 精品人妻一区二区三区日产| 91亚洲人电影| a片自拍直播视频| ,国产乱人伦精品一区二区三区| 国内一级精品| 久7色| 起碰97| 澳门成人网站久国产日韩| 乱人乱色一区二区三区免费| 欧洲小说色图视频另类| 精品国产一区探花在线观看| 图色综合网| 三级激情网站| 少妇熟女视频一区二区三区| 久久五月婷| 国产美女高潮| 亚州熟妇精品| 99综合视频| 国产强奸乱伦欧美| 无码久| 亚洲精品日日夜夜52| 亚洲熟女人妻中文字幕一区二区 | 夜夜爽夜夜摸夜夜操免费视频| av资源在线播放天堂| 九九九九精品视频| 99久久综合| 伊人久久大香大香线蕉中文| 羞涩视频| 欧美亚洲se91| 天天日少妇逼AV| 国产精品白丝在线播放| 久久后入制服| 北京专精特新企业招聘信息| 色网在线视频观看免费| 五月天婷婷社区| 91在线色| 五月丁香六月激情| 欧美精品一区二区少妇免费A片 | 色在线综合| 欧美色图99| 黑丝日韩av丝袜av| 天天干天天干天天| 日va操| 日韩欧美亚洲自拍偷拍| 久久久久深夜无码| 97精品视频免费| 五月天开心网| 国产成人bd在线观看| 日韩成人高清一区二区| 亚洲97网站| 麻豆性爱视频在线播放| 五月天激情国产综合婷婷婷| 亚欧无码在线| 日韩操p| 97超碰日韩| 久超碰这里只有精品| 久操操| 2020中文字幕| 色色色色综合网| 免费亚洲黄色视频在线观看| 9久在线视频只有精品| 蜜区区视频79 | 熟女人妻一区二区三区| 日韩美女啪啪一区| 日韩成人性日韩成人性爱视频在线免费观看 | 超碰色97| 人妻另类| 91天天美女| 欧美亚洲激情一二三| 亚洲淫乱骚妇AV| 韩国轻伦国内自拍一区| 午夜精品久久久久久久男人的天堂 | 欧美精品日韩久久久九| 国产成人超碰在线| 污色区网站| 亚洲欧美不卡线| 少妇天堂| 男人的天堂免费| 欧美春色| 97日韩超碰超碰中文字幕| 91中出在线| 精品久久久一本一道| 玖玖爱伊人玖玖爱| 熟女露脸激情自拍视频| 亚洲综合伊人| 色69大色97香蕉| 国产AV天美传媒一区二区三区 | 97 国产精品| 亚洲天堂资源| 五月天亚洲网| 啊啊啊操死我了| 麻豆一区二区AV天美| 97超碰精品图片| 少妇高潮九九九九| 天天看天天日| 狠狠色噜噜狠狠狠狠2018| 以及麻豆国产入口在线观看免费| 2025年A片视频精品| 国产精品视频91久久| 韩国手机不卡无码三级视频| 看大黄色大片原件| 黄色大香焦1级‘′‘| 久久肏大逼| 色婷婷香蕉| 亚洲成人av色网| 欧美天堂日韩三级国产传媒| 亚洲 欧美 另类 日韩 人妻一区| 国产精品丝袜久久亚洲不卡| 九九九草| 精品久久久久久久| 欧美一二三级精品在线| 精品人妻av在线播放| 免费精品福利在线观看| 男人的天堂啪啪| 九九九久千久久激情蜜桃在线看 | 欧美性爱91| 婷婷中文网| 口爆综合网| 蜜桃色院一区久久 | 久久成人午夜精品影院| 亚洲欧美中文日韩视频中国语| 色99色| 久久久18禁| 大香蕉一人| 亚洲国产成人7777| 日本韩欧美在线播放a| 久久久久久久一级黄色打同平台| 伊人丝袜美腿高跟在线观看高清| 亚洲中文字幕一区| 精品人妻中文字幕高清| 强歼乱伦资源网| 色综合中文字幕不卡| 成人精品欧洲亚洲| 黄色大片视频在线免费看| AAAAAAAAA黄片| 天天狠| 亚洲在钱| 熟女激情综合网| 99色在线视频| 成人精品欧洲亚洲| 亚洲无码电影久久久| 午夜福利成人免费视频| 一区二区三区日韩欧美| 99超碰碰| 亚洲AV无码黄色强奸| 三级片大波波| 国产97色在线| 人、人、摸,人、人、草| 三上制服丝AV| 我想要 啊 啊 啊| 欧日a| 久久久111| 国产午夜精品理论片一二三区区| 国产一区二区啪啪视频| 国产精品suv一区| 99无码狠狠久久| 26uuu国产| 青青草好吊| 秋霞久久亚洲精品成人| caopeng97人妻| 日本不卡一区二区| 色五月婷婷五月天| 另类图片五月天| 国产精品无码av在线| 天天综合欧美综合| 97超碰人人操人人操| 国产成人亚洲精品自产在线| 欧美人妖内射| 欧美视频在线视频免费va| 精品国产久久乱码| 亚洲蜜乳av| 91少妇香蕉久久精品| 92性色国产午夜福利在线661| 天天色香欲综合网| 精品国产AV一区天美传媒| 亚洲日韩精品在线播放| 99最新日韩偷拍视频| 国产 热久久久久国产精品| 日日骚 av| AV一区观看| 伊人久久久日韩一区| 亚洲一区日韩精品中文字幕| 91在线美女| 手机看片91人妻| 中文字幕一区二区三区人妻少妇在线| 97AV在线观看| 按摩中文字幕| 翔田千里无码一区| 久久久久久九九九九-美女久久久久久久-成人AV| 91综合熟女| 夜夜嗨AV蜜臀av| 久久在线观看免费视频| caopeng97人妻| 日韩美女啪啪一区| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 熟女久久| 男人的天堂不卡一区二区| 国产99999| 美女熟妇色| 久久精品成人| 狠狠色丁香| 屁股久久久久久| 伊人大香蕉在线| 岛国激情视频在线观看| 亚洲国产青青| 性爱av在线免费观看| 啪啪啪综合| 北条麻妃99精品青青久久| 亚洲成aⅴ人片不卡无码| 久操视频免费观看| 天天爽人人综合免费7799| 人妻久久一区二区三区 | 精品超碰国产| 呦呦一区| 日本熟妇精品九九| 亚洲另类在线观看| 性爱视频免费网址| 蜜桃视频啊啊啊啊| 女优视频第10页| 日韩性爱视频在线免费观看| 欧洲一区二区三区四区在线观看| 91碰碰碰| 为用户提供免费看黄网址在线观看| 日韩精品一区,二区 九九...老司机| www.久久爱| 东京热视频网| 久久久久国色αv免费观看| 欧美色九九九| 免费人成?大片在线播放| 91老女人| 男人的天堂三级| 嗯嗯嗯,草死我| 无码自拍SM| 不卡中文字幕aⅴ在线| 色欲久久99精品久久| 91爱网| 一区二区亚州激情久婷婷欧美| 久久成年片色大黄全免费网站| 97久久久精品| 在线无码操| 亚洲欧美日韩免费观看| 欧洲自拍第一页| 大香蕉99热| 色色无码| 成人性爱高清视频免费看| 中文字幕在线观| 亚洲国产蜜臀系列在线观看| 久久色激情一区二区三区| 99久久精品国产高潮| 人人看人人插| 大香蕉综合网| 美女十八禁| 欧美天堂亚洲电影院一区在线播放| 91久久精品蜜臀| 日日碰狠狠添天天爽超| 99久久久无码精品国产人| 精品人妻一区二区三区四区不卡在| AV色五月天| 高跟伊人julia ann| 91亚洲黑人| 激情五月婷婷| 强奸a片网| 午夜福利精品| 日日插夜夜| 亚洲**2021在线观看| 91第一页| 亚洲国产天堂| 精品人妻一区二区三区四区| 欧美最大综合网| 国产精品久久久久久久免牛肉蒲团| 操穴国产| 久久理论字幕视频| 久久男人的天堂国产| 激情丁香婷婷| 亚洲精品成人| 综合啪啪| 91狠狠综合久久| 717影院理论午夜伦八戒| 成年人一级黄色毛片大全在线观看| 日韩性爱毛片操骚逼| 伦激情人妻另类人妻| 欧美日韩国产一区二区小黄片大全| 黄骗免费网站| 久久AV无码AV| 精品一区二区国产日韩| 秋霞网无码| 无码久久亚洲高清,| 精品蜜乳AV免费观看| 无码久久亚洲高清,| 一本色道综合久久欧美| 日本性交操一区二区不卡系列| 秋霞一集毛片观看| 超碰国产精品无码| 人人妻人射| 日韩成人大片一区二区| 国产日韩欧美三级片| 欧美在线干| 大香蕉伊人色偷偷在线| www.97在线| 人人爽夜夜操| 久草精品视频| 99热这里只有精品1| 久久久日本电影| WWW.操逼.COM| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 欧美精品久久96人妻无码| 亚洲国产成人精品久久久国产成人一区二区 | 在线视频 亚洲精品| 亚洲密乳AV| 日本色色色视频| www.色婷婷| 夜夜高潮夜夜爽高清视频一 | 国产精品剧情| 人人做天天爱| 8050午夜少妇无码| 男人天堂一区二区| 亚洲av热热色| 人人澡人人澡人人| 国产精品自拍视频| 国产乱伦亚洲| 五月婷婷六月丁香| a男人的天堂| 男人天堂 天天射| 鸥美中出| 欧美日韩亚洲一区二区在线观看| 国产男女无套视频免费观看| 人妻碰碰碰碰碰碰| 天美传媒在线一区| 干B网| 日韩综合成人免费视频| 国产精品老师| 哈哈操电影AV| 欧美色图99| 亚洲成人在线高清| 9久精品| oumeizonghese,www| 中国熟妇| 青娱乐亚洲自拍| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 国产成人资源| 天天操天天日青青草超碰av| 欧美色就是色| 亚欧高清在线| 久久曰曰| 亚洲熟女综合网| 色成人Www精品永久观看| 亚洲色堂免费视频| 欧美桃色网| 精品九九国产无码| 国内精品999| 亚洲综合草草| 日韩人妻有码免费视频| 丰满欧美少妇| 东北老熟女| 奇米狠999| 久久伊人网视频一区二区三区 | 超91综合网| 久久精品女同亚洲女同13| 亚瑟国产精品久久无码| caopeng97| 亚洲欧美清纯| 人人做人人妻人人夜视频| 91美女在线视频| 91天天综合网| 狠狠干狠狠干| 男生通女生屁股| 亚洲成人福利电影免费| 神马久久久久久久久久| 亚洲欧美成人网站AAA| 人妻少妇色综合| 亚欧美无遮挡| 欧美精品自慰系列寂寞少妇| 国产性爱欧美性爱在线| 99e久久国产精品| 超碰性爱97| 超碰在线人人射| 成人贴图日韩欧美| 久久免费9| 天天操夜夜操| 成人小电影网站tex| 亚洲免费看片| 欧美高清91| 99热亚洲| 伊人九九九| 亚洲国产精品久久久久久久久久| 国产精品农村妇女精品| 久草视频分类在线| 亚洲情色 自拍| 色狠狠综合| 超碰人妻久久| 欧美色偷拍 | 日韩av乱伦| 98超碰欧美| 人妻天堂综合网| 人人操人人色网| 三级片大波波| 涩涩涩综合| 日日干夜夜欢| 久久xxxx| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 最新日本中文字幕| 久偷拍| 国产自产一区视频在线| 岛国不卡超碰护士AV在线播放| www国产天美久久久| 一区e区三| 精品一区二区三区蜜桃臀赵总 | 久久久久国产无av| 999精品女人| 欧洲Au麻豆| 思思热久久成人| 人人操人人精品影片| 九月丁香| 看日韩黄片| 欧美亚洲se91| 综合色色网| 凹凸视频在线一区二区| 北条麻妃性愛视频| 国产在线精品偷| 亚洲综合91| 嗯嗯啊啊好疼| 静品嫩模一区二区| 日韩在线国产字幕| 欧美色图91p| 91校园春色长篇| 日韩字幕一区| 男人的天堂kva| 久久的网站啊啊啊啊啊| 亚洲欧洲精品视频发布| 久久久久成人网| 97久久超碰国产网站| 999国产精品999| 一起草三级AV电影在线观看| 玖玖草久草99蜜月一区二区三区| 五月天婷婷久久| 欧美性爱第一区| 東南亚性呦成人伦理资源在线视频| 精品.99999| 国产AV高清AV无码| 国产福利一区二| 九九九国产精品| 欧美 日韩 国产传媒| 丁香六月婷婷综合| 欧美一区二区三区四区综合| 综合亚洲网| 欧美 亚洲 另类 综合| 久草婷婷| 思思热影视| 26uuu最新| 亚洲少妇视频| 99黄页网站| 综合久草| 久久久久婷婷| 欧美日韩激情无码专区| 99色网| 中文区中文字幕免费看| 99黄页网站| 国产精品久久久视频| 久久久精品国产亚洲AV无码| 亚洲欧美精品国产一区二区| 日本媚薬中文字幕在线| 男人的天堂日韩| 老熟妇综合| 九一屌逼| 欧美夜夜狠| 青青草天天亲夜夜操网| 九月丁香婷婷色| 9久在线视频只有精品| 91精品人妻一品二品三品| 国产精品3| 国产欧美后入| 婷婷情色五月天| 日产国产精品中文久久婷婷| 五月丁香综合网| av一区二区三区 中文| 郑州宾馆老熟女露脸啪啪| 国产成人99久久亚洲综合| 日韩在线观看三级电影| 欧美啪啪色吧在线| 97在线公开视频| 蜜桃臀久久| 天天操天天日青青草超碰av| 久久久久密臀视频| 久久久久久久久久久999| 国产精品乱人伊人网| 欧美极品少妇交| 91熟女熟妇视频网站| 91美女丝袜诱惑视频| 99久久9| 久草婷婷| 午夜精品久久久久久久男人的天堂 | 色欲日韩欧美在线一区| 亚洲最新a在线观看| 日逼国产| 91精品人妻电影| 中文字幕性感少妇av| 亚洲欧洲网站免费观看| 国产免费一区在线观看| 超碰成人免费| 920日本午夜免费| 粉嫩国产精品久久粉嫩| 97超碰色五月| 久久熟妇五十路一区| 超碰 av 女人天堂| 一区二区国产视频在线观看| 老司机午夜福利视频一区二区| 亚洲欧美国产va在线| julia ann久久| 天天干人人乐| 亚洲中文字幕在现观看| 国产精品久久久久久高清无码免费看| 国产拍偷精品网站|