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

ARTICLE DETAIL

資訊詳情

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

Django建材銷售平臺實戰(zhàn):三端角色權(quán)限與SKU訂單設(shè)計全解析

Django建材銷售平臺實戰(zhàn):三端角色權(quán)限與SKU訂單設(shè)計全解析 做建材類電商項目的時候很多人第一反應(yīng)是“這不就是個多用戶商城嗎”。但真上手之后你會發(fā)現(xiàn)建材這個行業(yè)和賣衣服賣數(shù)碼完全不一樣SKU維度極其復(fù)雜角色之間又有很強的數(shù)據(jù)隔離需求。我最近剛好完整做了一個基于Django的建材銷售平臺角色分了用戶、商家、管理員三端整個項目從建模到落地踩了不少坑這篇文章就把我的完整設(shè)計思路、代碼實現(xiàn)和排錯記錄都梳理出來給準(zhǔn)備做同類Django項目實戰(zhàn)的新手一個可以直接參考的模板。1. 項目定位與三大角色模型拆解1.1 建材銷售平臺的核心業(yè)務(wù)閉環(huán)為什么值得動手做建材銷售平臺本質(zhì)上是一個B2B2C的電商系統(tǒng)。C端用戶裝修業(yè)主、包工頭、小裝修公司要瀏覽和購買建材B端商家要上架商品、管理庫存、處理訂單平臺管理員則負(fù)責(zé)審核商家資質(zhì)、維護類目、處理糾紛。這三者形成一個完整的業(yè)務(wù)閉環(huán)商家發(fā)布商品 → 用戶瀏覽下單 → 商家發(fā)貨履約 → 用戶收貨確認(rèn) → 管理員全程監(jiān)管。選擇Django來做這個項目我覺得非常合適。建材的品類數(shù)據(jù)模型比普通電商復(fù)雜得多比如瓷磚會有規(guī)格、色號、等級、表面工藝等多個維度水泥有袋裝和散裝的區(qū)別計價單位也不統(tǒng)一。Django的ORM抽象能力強模型類可以直接把這些復(fù)雜屬性映射成數(shù)據(jù)庫字段配合Django Admin做后臺管理開發(fā)效率非常高。而且平臺天然就有“用戶、商家、管理員”三種角色的權(quán)限控制需求Django自帶的認(rèn)證系統(tǒng)加上自定義用戶模型很輕松就能撐起這套權(quán)限體系。這個項目適合誰來學(xué)習(xí)參考呢如果你是正在做Django項目實戰(zhàn)的新手想找一個不流于表面的完整案例或者你本身在做建材、五金、家居相關(guān)行業(yè)的管理系統(tǒng)需要一套可復(fù)用的角色權(quán)限設(shè)計這篇文章都能給你實打?qū)嵉膮⒖肌?.2 三種角色的權(quán)限邊界與核心業(yè)務(wù)場景先拆解一下三種角色到底要干什么因為權(quán)限設(shè)計的前提是把業(yè)務(wù)場景想清楚否則后面寫代碼全是補丁。用戶端C端消費者注冊登錄、瀏覽商品、按類目和規(guī)格篩選、商品搜索、加入購物車、提交訂單、在線支付、查看訂單狀態(tài)、申請售后。用戶權(quán)限的邊界很清晰——只能操作自己的購物車、自己的訂單、自己的收藏夾絕對不能看到商家的庫存和成本信息。商家端B端供貨商商家入駐申請、商品上下架、庫存管理、改價、訂單處理發(fā)貨、退款處理、查看自己店鋪的銷售數(shù)據(jù)。商家的核心訴求是管好自己的“一畝三分地”所以商家端所有功能都要圍繞“當(dāng)前登錄商家ID”做數(shù)據(jù)隔離不能讓商家A看到商家B的商品和訂單。管理員端平臺運營商用入駐審核、用戶管理、商品類目管理、平臺公告發(fā)布、全量訂單查看、數(shù)據(jù)統(tǒng)計報表。管理員擁有最高權(quán)限但不能越權(quán)操作具體業(yè)務(wù)比如管理員不該直接替商家改價而是通過平臺規(guī)則去約束。這里特別提醒一下權(quán)限控制不能只靠前端隱藏按鈕后端必須每一層都校驗。我見過太多項目頁面上的按鈕是藏了但接口沒攔住別人直接構(gòu)造URL或者抓包就能越權(quán)操作。Django里做權(quán)限控制核心思路是“裝飾器中間件模型查詢過濾”三層防線后面我會詳細寫實現(xiàn)方案。2. 技術(shù)選型為什么是Django 周邊生態(tài)2.1 Django版本、Python環(huán)境與數(shù)據(jù)庫的務(wù)實選擇技術(shù)選型這件事我的原則是“不追新只求穩(wěn)”。做項目實戰(zhàn)和做技術(shù)研究不一樣生產(chǎn)環(huán)境里穩(wěn)定壓倒一切。Python版本建議直接用3.10或3.11這兩個版本目前生態(tài)兼容性最好。Django版本我推薦4.2 LTS這是長期支持版本官方維護周期到2026年4月坑都已經(jīng)被人踩平了各種第三方庫的兼容性也最好。不建議一上來就用Django 5.x雖然新功能不少但部分第三方庫還沒完全跟上。數(shù)據(jù)庫方面開發(fā)環(huán)境用SQLite完全夠但考慮到建材平臺數(shù)據(jù)量大了以后查詢會變慢生產(chǎn)環(huán)境建議直接上MySQL 8.0或PostgreSQL 14。創(chuàng)建項目的時候用django-admin startproject這個命令創(chuàng)建應(yīng)用用python manage.py startapp。這里有個經(jīng)驗之談一個項目不要把所有業(yè)務(wù)邏輯都塞進一個app里。我見過不少新手建一個app叫app然后把用戶、商品、訂單全寫在一個models.py里幾千行代碼擠在一起后期維護欲哭無淚。我的做法是拆分多個app每個app只負(fù)責(zé)一個業(yè)務(wù)模塊。django-admin startproject building_mall cd building_mall python manage.py startapp users python manage.py startapp products python manage.py startapp orders python manage.py startapp merchants python manage.py startapp platform2.2 數(shù)據(jù)模型設(shè)計一張User表還是擴展Profile這是整個項目最關(guān)鍵的決策之一直接影響后面所有代碼的寫法。兩種方案第一種是直接自定義用戶模型繼承AbstractUser加一個user_type字段區(qū)分角色第二種是用Django默認(rèn)的User再建一個Profile表通過OneToOne關(guān)聯(lián)把角色信息放在Profile里。兩種方案都可以但我的建議是如果你還在項目設(shè)計階段直接自定義用戶模型最好。因為Django官方文檔明確說了最佳實踐是“從一開始就設(shè)置自定義用戶模型”否則中途想切換會非常痛苦。自定義用戶模型的遷移文件一旦生成后面再改涉及大量數(shù)據(jù)遷移操作很可能把數(shù)據(jù)庫搞亂。from django.contrib.auth.models import AbstractUser from django.db import models class User(AbstractUser): ROLE_CHOICES ( (user, 普通用戶), (merchant, 商家), (admin, 管理員), ) role models.CharField(max_length20, choicesROLE_CHOICES, defaultuser, verbose_name角色) phone models.CharField(max_length11, blankTrue, verbose_name手機號) class Meta: verbose_name 用戶 verbose_name_plural verbose_name同時在settings.py里配置AUTH_USER_MODEL這一點特別容易漏。AUTH_USER_MODEL users.User角色字段放在User上登錄的時候一次查詢就能拿到角色信息不用再額外關(guān)聯(lián)Profile表查一次減少一次數(shù)據(jù)庫查詢性能更好。當(dāng)然如果項目已經(jīng)開始寫了、模型已經(jīng)遷移過了那就不建議強行改老老實實建Profile表關(guān)聯(lián)會穩(wěn)妥很多。2.3 后臺管理現(xiàn)代化改造django-unfold值得一試Django自帶的Admin后臺功能強大但界面老氣建材平臺的運營人員經(jīng)常要維護類目、審核商品天天對著原生Admin界面確實難受。這里我推薦一個第三方庫django-unfold它能把Django Admin改造成現(xiàn)代化的UI界面?zhèn)冗厵?、主題色、卡片式布局都有非常像現(xiàn)在主流SaaS后端的風(fēng)格。pip install django-unfoldINSTALLED_APPS [ unfold, # 一定要放在django.contrib.admin之前 django.contrib.admin, ... ]它兼容Django 4.2和5.0安裝后基本不需要改代碼繼承Admin類的地方也都能正常用。這個小改動能讓整個系統(tǒng)的專業(yè)感提升不少商家入駐審核頁面和商品管理頁面用起來舒服得多。我的體驗是django-unfold最大的價值是讓運營團隊的好感度直線上升因為后臺UI舒服了運營錄入數(shù)據(jù)的效率和正確率也跟著上來了。3. 從零搭建項目初始化與核心功能落地3.1 用戶模型擴展與登錄注冊的完整實現(xiàn)用戶系統(tǒng)是整個平臺的地基先從它開始寫。自定義User模型建好之后要處理的就是注冊和登錄邏輯。注冊的時候要區(qū)分角色普通用戶和商家走不同的注冊入口平臺上商家要填寫店鋪名稱和聯(lián)系方式提交入駐申請后要等管理員審核通過才能變成有效商家。注冊接口的核心邏輯很簡單但要注意密碼加密。Django默認(rèn)的set_password方法會自動加鹽并哈希千萬不要自己存儲明文密碼。這里有一個踩過的坑新手容易圖省事直接user.password request.POST[password]存明文這是致命操作一旦數(shù)據(jù)庫泄露用戶的密碼就全裸奔了。from django.contrib.auth import login, authenticate from django.shortcuts import render, redirect from .forms import UserRegisterForm, MerchantRegisterForm def register_user(request): if request.method POST: form UserRegisterForm(request.POST) if form.is_valid(): user form.save(commitFalse) user.role user user.set_password(form.cleaned_data[password]) user.save() login(request, user) return redirect(home) else: form UserRegisterForm() return render(request, users/register_user.html, {form: form})登錄的邏輯更簡單authenticate傳入用戶名和密碼驗證通過后login寫入會話。登錄成功后注意按角色分發(fā)到不同的首頁普通用戶去商城首頁商家去商家工作臺管理員去平臺后臺。這里我用一個裝飾器來封裝角色判斷后面每個視圖都能復(fù)用。from django.core.exceptions import PermissionDenied def role_required(role): def decorator(view_func): def wrapper(request, *args, **kwargs): if not request.user.is_authenticated: return redirect(login) if request.user.role ! role: raise PermissionDenied return view_func(request, *args, **kwargs) return wrapper return decorator用法也很直觀比如商家用戶中心的視圖就這樣標(biāo)注role_required(merchant) def merchant_dashboard(request): ...裝飾器寫好后每個業(yè)務(wù)視圖只要加上一行就能控制訪問角色比到處寫if判斷要清爽得多。但這里有個注意點因為User繼承的是AbstractUserDjango默認(rèn)的登錄視圖返回的user對象會自動帶上自定義的role字段所以裝飾器里直接取request.user.role是沒問題的。3.2 商品與SKU建模建材行業(yè)特殊字段怎么設(shè)計建材商品的建模是整個項目的重頭戲也是最容易暴露行業(yè)認(rèn)知短板的地方。我一開始直接把所有字段堆在商品表里后來發(fā)現(xiàn)一個致命問題同一種瓷磚可能會有多個規(guī)格、多個色號每種規(guī)格和色號對應(yīng)不同的庫存和價格。如果把這些都塞在商品表里一條商品記錄根本存不下實際情況。所以商品建模必須拆成兩層商品表Product和SKU表ProductSKU。商品表存的是通用信息品牌、類目、標(biāo)題、主圖、描述SKU表存的是具體售賣規(guī)格每個SKU對應(yīng)一個價格和一個庫存數(shù)量。class Product(models.Model): name models.CharField(max_length200, verbose_name商品名稱) category models.ForeignKey(products.Category, on_deletemodels.PROTECT, verbose_name類目) brand models.CharField(max_length100, verbose_name品牌) material models.CharField(max_length100, verbose_name材質(zhì), blankTrue) description models.TextField(verbose_name商品描述, blankTrue) cover_image models.ImageField(upload_toproducts/cover/, verbose_name主圖) merchant models.ForeignKey(settings.AUTH_USER_MODEL, on_deletemodels.CASCADE, verbose_name所屬商家) is_active models.BooleanField(defaultTrue, verbose_name是否上架) created_at models.DateTimeField(auto_now_addTrue) class ProductSKU(models.Model): product models.ForeignKey(Product, on_deletemodels.CASCADE, related_nameskus, verbose_name所屬商品) spec_value models.CharField(max_length100, verbose_name規(guī)格值) # 比如 800x800mm 啞光灰 color models.CharField(max_length50, verbose_name色號, blankTrue) grade models.CharField(max_length20, verbose_name等級, choices((a,優(yōu)等品),(b,一等品),(c,合格品)), blankTrue) unit models.CharField(max_length20, verbose_name單位, default平方米) price models.DecimalField(max_digits10, decimal_places2, verbose_name銷售單價) stock models.IntegerField(default0, verbose_name庫存數(shù)量)這里有幾個建材行業(yè)的特殊點分享給大家單位不統(tǒng)一的問題。瓷磚按平方米、水泥按袋/噸、板材按張、電線按卷。所以unit字段不能省下單和展示時必須明確標(biāo)注計價單位否則用戶下單時看到的價格單位和自己預(yù)期的不一致售后糾紛能讓你崩潰。等級的概念。瓷磚同一型號會有優(yōu)等品和一等品的價格差異石膏板也分不同等級。這個在普通電商里不太會遇到但在建材里是常規(guī)操作。價格波動快。建材的原材料價格受市場行情影響明顯商家需要經(jīng)常調(diào)價。所以價格放在SKU表而不是商品表方便特定規(guī)格單獨調(diào)價。同時建議加一個價格變動日志表記錄每一次調(diào)價歷史方便財務(wù)對賬。3.3 訂單流轉(zhuǎn)與庫存扣減一個事務(wù)解決并發(fā)問題訂單模塊是整個平臺業(yè)務(wù)邏輯最密集的地方主要涉及訂單狀態(tài)管理和庫存扣減。訂單我拆成訂單主表和訂單明細表主表記錄收貨人信息、總金額、狀態(tài)等明細表記錄商品SKU、購買數(shù)量、單價。訂單狀態(tài)用一個choices字段維護可以定義如下狀態(tài)序列待支付 → 已支付/備貨中 → 已發(fā)貨 → 已簽收 → 已完成以及異常狀態(tài)已取消、售后中、退款成功。狀態(tài)流不能跳變比如待支付狀態(tài)下不能直接變成已發(fā)貨這些業(yè)務(wù)規(guī)則可以在模型中定義方法避免散落在各個視圖里。庫存扣減是電商平臺最經(jīng)典的問題——并發(fā)。兩個用戶同時買同一件商品庫存只剩一件如果代碼先讀庫存再更新庫存就會發(fā)生超賣庫存變成負(fù)數(shù)。Django里解決這個問題有兩種常用方案。第一種方案是使用select_for_update在事務(wù)里對SKU記錄加行鎖。from django.db import transaction with transaction.atomic(): sku ProductSKU.objects.select_for_update().get(idsku_id) if sku.stock quantity: raise ValueError(庫存不足) sku.stock - quantity sku.save() # 創(chuàng)建訂單明細等操作select_for_update的作用是鎖定該行記錄其他事務(wù)要操作這行時就必須等待當(dāng)前事務(wù)提交這樣并發(fā)請求就能串行化不會出現(xiàn)超賣。第二種方案是用F表達式直接在數(shù)據(jù)庫層面原子操作from django.db.models import F ProductSKU.objects.filter(idsku_id, stock__gtequantity).update(stockF(stock) - quantity)filter里的stock__gte保證庫存足夠才更新update返回受影響的行數(shù)如果返回值是0說明庫存不足。這個方法更輕量性能也比加行鎖好適合高并發(fā)的場景。但有些場景還是需要先查后寫的比如下單時要同時校驗商品是否上架在售所以我會把F表達式和事務(wù)結(jié)合使用既保證一致性又減少鎖等待。還有一個業(yè)務(wù)細節(jié)需要決定庫存扣減的時機。我采用的是“下單預(yù)占支付確認(rèn)”的策略。用戶提交訂單后先把庫存鎖定扣減庫存如果用戶沒有在15分鐘內(nèi)支付訂單自動取消并釋放庫存。這樣做的好處是用戶下單后商品不會被別人買走體驗更好。壞處是預(yù)占庫存的時間內(nèi)其他用戶看到的庫存是減少的有可能影響銷售。權(quán)衡之下建材這種低頻高客單價的商品預(yù)占策略更合適。3.4 ORM高頻操作實戰(zhàn)查詢、更新、刪除對象Django的ORM用好了能省很多事但用不好經(jīng)常踩坑。這里我把項目中最高頻的幾種操作列一遍。查詢是重頭戲。建材商品的類目很多用戶經(jīng)常要用多個條件組合篩選按類目、按品牌、按材質(zhì)、按價格區(qū)間。組合查詢的核心是Q對象和filter的動態(tài)拼接。比如前端傳多個篩選條件后端用字典動態(tài)構(gòu)造filter參數(shù)from django.db.models import Q filters {is_active: True} if category_id: filters[category_id] category_id if brand: filters[brand] brand if min_price: filters[skus__price__gte] min_price if max_price: filters[skus__price__lte] max_price products Product.objects.filter(**filters).distinct()注意這里用了skus__price這種跨表查詢因為價格在SKU表商品和SKU是一對多的關(guān)系所以要用雙下劃線跨關(guān)系過濾加distinct()是為了去重否則一個商品有多個SKU時會返回多條重復(fù)記錄。聚合統(tǒng)計也經(jīng)常用。比如商家工作臺要看到“我的商品數(shù)量”“本月訂單總金額”用annotate比遍歷Python再統(tǒng)計效率高得多from django.db.models import Sum, Count merchant_orders Order.objects.filter(merchantrequest.user, created_at__month8) total_amount merchant_orders.aggregate(totalSum(total_amount)) total_count merchant_orders.aggregate(countCount(id))關(guān)于關(guān)聯(lián)查詢性能有一個必須提到的點select_related和prefetch_related。查詢訂單列表時如果訂單關(guān)聯(lián)了用戶和SKU用select_related能把外鍵關(guān)聯(lián)的表一次性join查出來避免在循環(huán)里逐條查詢外鍵數(shù)據(jù)。這就是著名的N1問題列表有50條訂單如果每個訂單都要查一次用戶表就會多出50條SQL用select_related之后只有1條SQL。至于刪除對象Django的delete()方法有一個很容易被人忽略的特點它是級聯(lián)的。刪除一個商品它關(guān)聯(lián)的所有SKU會被一并刪除刪除一個用戶他的所有訂單也會被刪光。這有時候很危險。在銷售平臺里商品和訂單都是重要的業(yè)務(wù)數(shù)據(jù)物理刪除意味著數(shù)據(jù)徹底沒了。我的處理思路是業(yè)務(wù)數(shù)據(jù)一律軟刪除用is_activeFalse代替delete()。# 下架商品軟刪除而不是物理刪除 product.is_active False product.save()# 如果要物理刪除先確認(rèn)沒有訂單關(guān)聯(lián)且做好級聯(lián)評估 order_count OrderItem.objects.filter(sku__productproduct).count() if order_count 0: raise ValueError(該商品存在歷史訂單禁止刪除) product.delete()Django的delete()還會返回一個元組第一個元素是刪掉的對象總數(shù)第二個元素是每個模型刪除數(shù)量的字典如果調(diào)試的時候想確認(rèn)到底刪了什么可以print出來看看我調(diào)級聯(lián)刪除問題時就靠這個定位到某個外鍵忘了加on_delete。3.5 文件上傳與圖片資源管理的配置建材商品離不開圖片用戶的購買決策很大程度依賴于商品實拍圖。Django的文件上傳配置不算復(fù)雜但很容易在部署階段卡住。核心配置有三處MEDIA_URL、MEDIA_ROOT以及開發(fā)環(huán)境下的媒體路由。# settings.py MEDIA_URL /media/ MEDIA_ROOT BASE_DIR / media# urls.py開發(fā)環(huán)境專用 from django.conf import settings from django.conf.urls.static import static urlpatterns static(settings.MEDIA_URL, document_rootsettings.MEDIA_ROOT)開發(fā)環(huán)境里這行代碼能讓你直接通過/media/訪問上傳的圖片非常方便調(diào)試。但要注意生產(chǎn)環(huán)境絕對不能這么配因為Django自帶開發(fā)服務(wù)器不適合承載靜態(tài)文件圖片由Nginx直接處理配置會在server塊里加一個location /media/指向MEDIA_ROOT目錄。還有一個容易忽略的點用戶上傳的文件名可能包含中文或特殊字符在上傳到服務(wù)器后容易引起編碼問題。我習(xí)慣了在上傳時統(tǒng)一重命名文件比如用時間戳加隨機串來命名import os, uuid from django.utils import timezone def rename_upload(instance, filename): ext os.path.splitext(filename)[1].lower() new_name f{timezone.now().strftime(%Y%m%d%H%M%S)}_{uuid.uuid4().hex}{ext} return os.path.join(products, instance.product.merchant.username, new_name)這樣處理之后文件名永遠是純ASCII的配合CDN做分發(fā)也不會有問題我建議所有上傳字段都用這個邏輯。4. 常見問題與排查實錄4.1 權(quán)限校驗失效后臺接口被未授權(quán)訪問這是我遇到的第一個嚴(yán)重問題。項目初版做完后我用一個普通用戶賬號測試發(fā)現(xiàn)竟然能直接通過URL訪問商家的訂單管理頁面。原因很簡單我這個視圖只在前端判斷了按鈕顯隱后端接口探到URL就直接返回數(shù)據(jù)了根本沒做角色校驗。排查過程用瀏覽器開發(fā)者工具抓包偽造一個商家工作臺的URL發(fā)現(xiàn)返回了200狀態(tài)碼和數(shù)據(jù)。修復(fù)方案就是上面說的role_required裝飾器并且給所有需要權(quán)限的視圖統(tǒng)一加上。這里給新手一個可復(fù)用的檢查方法把所有URL路徑整理成一張表逐個標(biāo)注需要什么角色能訪問然后用不同角色賬號逐一實測。權(quán)限表用Excel或者Markdown記錄都可以關(guān)鍵是覆蓋所有視圖別漏。4.2 圖片上傳后無法顯示這個問題幾乎人人都遇到過。開發(fā)環(huán)境下圖片顯示正常部署到服務(wù)器后圖片鏈接404。原因可能有三個MEDIA_ROOT路徑不對、MEDIA_URL沒有匹配到靜態(tài)文件服務(wù)、Nginx沒有配置media目錄映射。我的排查順序是先檢查服務(wù)器上文件是否真的上傳成功去MEDIA_ROOT對應(yīng)目錄看文件在不在再檢查Nginx配置看location /media是否指向了正確的目錄最后看Django有沒有在DEBUGFalse時配置靜態(tài)文件處理。這里有個坑很多教程里的static函數(shù)只在DEBUGTrue時生效生產(chǎn)環(huán)境必須靠Nginx或S3這類獨立存儲服務(wù)這個區(qū)分得非常清楚不然部署就踩雷。4.3 N1查詢導(dǎo)致接口慢得離譜項目經(jīng)理反饋商品列表頁打開要三秒多。我用Django Debug Toolbar看一下SQL查詢次數(shù)商品列表30條記錄總共執(zhí)行了30多次額外SQL每個商品都查了一次所屬商家的店鋪名。這就是典型的N1查詢問題。修復(fù)方案是對商品外鍵字段加上select_relatedproducts Product.objects.select_related(merchant).filter(is_activeTrue)對于商家和商品這類一對一/多對一關(guān)系select_related用SQL的JOIN一次性查出來對于多對多關(guān)系或者反向外鍵要使用prefetch_related它會先查主表再查關(guān)聯(lián)表在Python內(nèi)存里做關(guān)聯(lián)避免JOIN造成結(jié)果集膨脹。這兩個方法用對了查詢效率可以有數(shù)量級的提升。4.4 delete()級聯(lián)刪除的慘痛教訓(xùn)有一次我在測試環(huán)境模擬下架滯銷商品手滑用了product.delete()而不是軟刪除。當(dāng)時還覺得測試環(huán)境無所謂結(jié)果發(fā)現(xiàn)這個商品關(guān)聯(lián)的所有SKU、訂單明細都被級聯(lián)刪除了而訂單明細被刪除后平臺的銷售報表數(shù)字全部不正常。最后只能從備份里恢復(fù)數(shù)據(jù)折騰了大半天。這次的教訓(xùn)我總結(jié)成兩條鐵律物理刪除前必須檢查所有外鍵關(guān)聯(lián)。Django模型里每個ForeignKey的on_delete參數(shù)都要想清楚CASCADE雖然有但并不適合業(yè)務(wù)數(shù)據(jù)。訂單、訂單明細這類涉及交易的數(shù)據(jù)用PROTECT保護起來有引用就禁止刪除。業(yè)務(wù)數(shù)據(jù)一定要做軟刪除。重要數(shù)據(jù)永遠不物理刪除用status字段的狀態(tài)位控制可見性查詢時統(tǒng)一過濾is_active。這樣就算誤操作也有后悔藥吃。4.5 庫存超賣問題并發(fā)場景下的數(shù)據(jù)一致性平臺上線第三天就遇到問題某個瓷磚SKU只剩5件庫存但后臺顯示下單成功了7單。這就是并發(fā)超賣。初版代碼是“先查庫存再扣減”的邏輯sku ProductSKU.objects.get(idsku_id) if sku.stock quantity: sku.stock - quantity sku.save()兩個人同時請求都讀到庫存5都滿足1的條件都執(zhí)行了扣減最后庫存變成4但事實上賣出了2件超賣了1件。修復(fù)方法前面已經(jīng)寫了要么用F表達式原子更新要么用select_for_update加行鎖。我最終的方案是select_for_update配合事務(wù)因為庫存扣減的同時還要創(chuàng)建訂單明細、更新狀態(tài)多個寫操作需要放在同一個事務(wù)里保證原子性。5. 一些開發(fā)過程中的個人心得我前后做了兩個版本的建材銷售平臺第一版完全按普通電商的思路來設(shè)計結(jié)果在商品建模和業(yè)務(wù)邏輯上被運營吐槽得體無完膚。第二版深入到建材行業(yè)的細節(jié)里從SKU拆分到計價單位再到等級劃分每一條都是根據(jù)實際業(yè)務(wù)反推出來的。如果你準(zhǔn)備用Django做這種多角色平臺項目我強烈建議動手前先把業(yè)務(wù)角色畫清楚。用戶、商家、管理員三者在數(shù)據(jù)上的邊界在項目開始時就通過模型的ForeignKey和查詢條件定義好后期才不會越改越亂。另外如果打算用AI輔助編碼來快速搭一個Django項目我的經(jīng)驗是AI生成代碼速度快但ORM行為和權(quán)限校驗邏輯不能全信特別是外鍵的on_delete參數(shù)和查詢性能這部分關(guān)鍵代碼還是要自己把邏輯捋順了再放進去。最后再分享一個調(diào)試小妙招。Django項目調(diào)試時配置好Django Debug Toolbar每寫一個列表頁或者詳情頁都要看一眼SQL查詢次數(shù)和頁面響應(yīng)時間。這條習(xí)慣能幫你提前發(fā)現(xiàn)絕大部分性能雷區(qū)比上線后再排查靠譜得多。這個項目做完之后我對Django的模型設(shè)計自信了不少下一次再遇到類似的B2B2C平臺需求從需求到第一版上線節(jié)奏會快很多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲欧美国产va在线播放频| 91黑丝操| 欧美日韩操操操| 97久久超碰亚洲| 爱爱动态120秒| 97人人夜夜精品视频| 欧美,日韩综合久久| 国产视频一区二区在线观看| 三级色影综合网| 一个国产在线综合网站| 亚洲超碰97| 国产欧美成人精品| 歐美一級亂黃99在綫精品| 约操熟妇| 搡老女人911熟妇老熟女| 国产美女激情| 色爽——AV| 嗯……啊…嗯嗯…啊…好舒服| 日韩不卡在线一区二区| 人妻精品一区二区在线| 18禁无码永久免费无限制| 久久久久成人网| 久久久精品中文字幕麻豆| 丰满人妻一区二区三区| 日韩一区二区精品视频| 日韩一区二区三区四区五区| 日本性爱欧美性爱| 夜夜操美女| 亚洲人久久久久日| 一区二区三区四区在线不卡| 欧美96交| 9Ⅰ超碰| 日产成人久久| 我爱操| 91欧美性| 亚洲综合69| 欧美变态激情网| 久久97资源 网| 色欲天天综合网| 美国一区二区免费视频| 九月丁香婷婷色| 亚洲AV麻豆Aⅴ无码电影一| 97久久超碰亚洲| 日本天堂在线播放| 韩国免费播放一级毛片| 2024黄色视频| 国产一区二区a毛片| 丰满人妻一区二区三区色-百度| 91在线国产后入风骚翘臀美女素人| 日韩啪啪啪视频| SS久久| 啊啊啊好舒服视频在线观看| 人妻天天爽| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 4tube欧美女厕所| 国产欧美日产一区二区三区 - 国产欧美日 | 理论久久婷婷网 8| 极品内射| 伊人性在线视频| 欧美性爱第1 页| 亚洲欧美高清无码| 丰满人妻无码一区二区三区| 久久天堂| 综合国产影视三级| 伊人久久大香大香线蕉中文| 日韩人体偷拍| 大香蕉性欧美| 日韩精品在线观看观看| 蜜桃成人1区2区3区| 亚洲人妻一区二区三区| 久悠悠av| 五十路成人在线视频二区三区| 男人综合网| 国产伦精品| 国产女s强制榨精视频| caoni国产亚洲av| 日韩不卡毛片Av免费高清| 丁香五月激情婷婷| 欧美狠狠操| 97久久久网站| 国产精品日韩在线一区| 国产超碰| 日影院久久婷婷夜夜网| 九九九国产| 激情黄色片在线观看| 成人网站 免费观看| 无码人妻一区二区一牛影视| 欧美青青视频| 亚洲精品99999| 欧美一级美片在线观看免费| 国产原创精品| 人妻精品一区二区| 超碰人人在线| A啊啊在线观看| 久操免费电影| 日韩精品黄片免费观看| 嗯嗯啊啊操死我| 日韩不卡一二三四| 亚洲 欧美 制服 另类 自拍| 开心五月婷婷| 超碰97久久国| 中文AV制服乱伦| 激情四射五月天| 91视频成人福利网站在线一区| 欧美草草高清日韩视频| 亚洲二区精品在线观看| 亚州欧美综合| 99在线无码精品秘 入口黑人| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 97久久精品亚洲| 免费99精品国产自在在线| 欧美日韩中文视频播放| 人妻乱仑一区二区三区| 欧美日韩99精品麻豆传媒| 免费超碰97久久| 人人模人人看| 人人天天欧洲| 最新av中文字幕高清| 伊人97超碰| 另类小说欧美激情校园春色| 一区二区三区精品久久| 超碰97久久国| 人人艹亚洲| 97公开久久| 美国日韩黄片| 天天澡天天爽日日av| 综合色好色| 亚洲国男人的天堂| 久久精品店| 天美传媒国产原创中文字幕亚洲欧美另类| 999色欧美中文字幕| 啪啪视频亚洲第一| #NAME?| 色婷婷六月丁香七月婷婷| 99无码| 欧美日韩久久精品爱爱| 激情丁香五月婷婷| juliaann欧美丝袜办公室| 任你草| 丰满欧美放荡少妇在线| 丁香五月激情综合国产| 天天摸天天操视频| 国产女人高潮视频| 亚洲男人天堂网| 熟女一区二区| 99久久久久久久久| 色婷婷国产精品一区在线观看| 国产性感骚丝袜在线| 亚洲āv网址在线观看| 97人肏| 日韩在线欧美精品一区二区| 青久操| 精品国产91av一区二区三区| av草草在线电影| 五月丁香综合激情| 日本爽爽爽爽爽爽免费视频| 91影视亚洲| 熟女视频久久| 91无码西班牙视频在线| 成人天天爽| 91精品丝袜久久久久久| 999久久久免费精品国产牛牛| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 青青草色AV| 国产成人在线观看综合| 伊人骚琪琪亚洲天堂网站| 男人下部插入女人下部| 日本人人操人人操| 98久久| 日韩美女,国产传媒,视频一区| 夜嗨影院| 婷婷伊人五月| 国产精品伦理| 欧美国产成人在线| 看日韩美女二区三区免费操逼视频| 超碰97护士| 熟妇国产免费一区| 天美精品av| 中文一区在线视频| 亚洲精品一二牛牛| 91精品国| 四虎国产成人精品免费一女五男| 99性爱| 免费亚洲黄色视频在线观看| 一中国女人毛片水真多| 久久精品店| 亚州九九九精品视频| 在线观看十八禁| 懂色AV蜜臀无码精品APP| 亚洲久久久| 熟女一区二区三区| 91女神在线视频| 麻豆国产96在线| 久久欲| 大香蕉99999| 欧美一区二区三区成人性生活| 极品色社| a久久| 亚洲第一页第二页激情| 麻豆av一区二区| 九久久精品| 国产a级精品| 熟女人妻av在线资源,黄色的资源| 浪人综合网| 亚洲综合另类小说色区亚洲成av人片在www | 操人91| 亚洲古典另类欧美在线| 日韩精品碰碰| 天天操夜夜嗨| 蜜乳av一区二区| 五月天亚洲色图| 亚洲人妻色图| 久草成人| 一区二区三区免费视频入口| av网站免费看| 亚洲成a人v欧美综合天堂下载| 欧美瑟综合| 极品一区二区三区免费| 国产激情在线| 亚洲成人ab| 人妻91少妇| 国产9熟妇视频网站| 午夜福利一区二区三区四区五区色婷婷| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 日本人体九九九九九九| 欧美亚洲综合色| 国产性感骚丝袜在线| 久操99| 亚洲男人的天堂网| 天天操天天日天天干| 中文字幕女同在线| 亚洲性综合| 天天情欲宗合网| 激情四射婷婷六月天| 五十路熟女工口| 久久视频,这里只有精品| 91激情网| 久操国产在线| TS人妖另类精品视频系列| 色悠久| WWW.操逼.COM| 青娱乐亚洲自拍| 国产家庭乱伦网址| 67914亚洲精品| 久久国产精品,久久国产| 91挑色欧美| 久久99深爱久久99精品| 久久久啊啊啊| 亚洲无码国产精品久久| 人妻在线视频| 99黄页网站| 97在线日韩中文字幕| 91女日逼| 岛国片在线播放| 99热国产| 亚洲网污污污污| 蜜臀网址在线| 久久国产在线一区二区| 国产精品99久久久www| 欧美人妻精品| 亚洲图片欧美另类综合免费视频大大香| 色香欲综合| 自拍偷拍 日韩欧美| 欧美强奸乱能| 成人片视频| 麻豆天美在线| 91影库| 1024人妻| 99久久9| www国产无码| 黄色视频特级毛片| 欧美丝袜激情| 亚洲国产丝袜熟女av| 久久久久国产精品喷潮免费观看臀 | 国产按摩一区二区三区| 9999久久久久| 久久久久亚洲av综合波多野制衣| 99热只有| 久草成人影片| 久久国产乱子伦精品免费女人| 久久丁香五月天| 久久久成人精品| 亚洲欧美综合| 开心五月婷婷| 加勒比海人人操超碰在线| 国产女人和拘做爰视频| 91 丝袜在线| 91爱网| 大香网伊人久久综合| 蜜桃久久久久久久久久久久| 亚洲精品自拍| 亚洲日韩一区电影| 日韩色| 翔田千里av一区二区三区| 欧美亚洲高清不卡| 欧美中文字幕精品人妻| 男人的天堂2019AV| 少妇久久久久| 91狠| 国产美女自拍AV| 啊…啊…操我用力操我| 新怡红院| 亚洲午夜AV| 2020天天色综合| 99性爱在线观看| 蜜臀亚洲综合一二三四区| 性爱网站一区二区| 色香伊人| 福利在线黄片| 小骚逼被操的爽不爽| 最新av中文字幕高清| 97二区四区| 激情小说亚洲色图| 精品无码人妻一区二区免费蜜桃| 懂色中文一区二区三区| 性爱欧美五月| 久久九九视频九九视频| 欧美成人国产精品| 欧美做爰无码A片视频| 床戏久久久av一区二区麻豆| www色色com| 久久久偷拍| 99少妇精品视频| 中国一级αV| 亚洲综合小视频小说在线观看| 国产黄色小视频网站| 91网站18在线| 成人在线视频网| 草草草草视频| 蜜桃久久久久久久久久久久 | 97 超碰 人人做 人人爱| 亚洲图片色图欧美另类| 人妻美腿丝袜日韩| 亚洲色图大香| 综合久久久久久久综合网| 天天日熟妇| 99热精品在线| 国产欧美日本亚洲精品| 天天干夜夜肏| 亚洲伊人久久精品狠狠在线| 黄色欧美性爱视频| 久久久久亚洲三级电影| 九七超碰人人乐| 欧美有码亚洲中文字幕一区二区三区四区| 久久精品国产亚洲AV嘿嘿| 久热这里| 91亚·色| 亚洲操逼网| 性色AV蜜色av色欲av| 天综合网欧美| 亚洲欧洲视频小说在线观看| 久久久久久国产无码精品| 欧美性爱超碰97| 夜夜操夜夜爽夜夜高潮| 大香蕉伊人久久| 狠狠色伊人亚洲综合网站色| 人人妻人人爽人人精品| 做爱福利视频一区二区| www.狠狠干.coom | 国产熟码AV| 97硬碰| 亚洲啪啪性视频| 国产探花精品在线| 啪啪视频免费在线观看| 夜夜久久| 天天天乱色综合全| 国产午夜激片Av毛片不卡| 欧美 亚洲 在线| 美女淫穴| 97色伦欧美| 欧美乱伦专区| 青草伊人网| 91性生活久久久| 啪啪综合网| 国产美女高潮叫床视频| 夜色综合| av天堂加勒比| 九九久精品| 亚洲情色一区二区三区| 成人综合网 欧美| h在线看免费版在线看| 无码精品蜜桃一区二区三区ww| 欧美狠狠干| 久久久久久久9| 亚洲少妇激情一区二区三区| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 天天日天天舔东京热| 99天堂网| 婷婷天堂站| 草莓精品视频| 亚洲AV无码国产精品久久久久| 奇米四色影视777久久久| 性久久久| 91观看 国产白丝| 欧亚 另类 久| 不卡日本一区二区| 激情一区二区| 黄片视频观看| 嗯嗯啊啊好爽| AA级电影三区| 中文色综合| 一级二级在线观看| 日韩免费高清大片在线| 日本日逼高清| 黄片com.| 91丨九色丨熟女高潮| 综合情欲网| 999久久芭蕾| 欧美激情色婷婷花野真衣一区二区| 野狼激情网| 91粉嫩萝控精品福利网站_精品影音先锋国| 中文字幕国产| 91free福利| 麻豆天美电影一区二区| 爱爱动态试试看6 0秒| 天天天乱色综合全| 欧美亚洲高清不卡| 97在线观看视频| 国产区在线| 免费操逼91| 97超碰磁| 日本精品无码三级网站| 久久婷色| 国产精品乱码久久久久久久久久久久| 男人网站婷婷| 天天干人人乐| 国产一区二区免费福利片| 欧美一级国产一级| 操少妇很爽av| 亚洲欧洲无码一区夜| 熟女熟妇伦久久影院毛片一区二区| 78m成人视线| 国产中出内射一区二区| 92午夜免费福利视频| 爽爽淫人网| 西西美女视频网| 夜夜爽夜夜摸夜夜操免费视频| 99999国产精品| 极品综合| 国产精品91一样| 性爱AV天堂| 亚洲色电影在线| 久久久久久久伊人精品| 成人午夜无码视频| 天天操人人操骚逼网站| 免费成人自拍视频在线| 丁香五月婷婷基地| 欧美成人综合| 日韩免费a级毛片无码a∨| 日本精品无码三级网站| 日本亚洲vr欧美不卡高清专区| 国产精品久久久久久久免牛肉蒲团| 9久久精品| 蜜桃视频成a人v在线| 人人天天欧洲| 久久久九九| 国产强奸AV在线| 成人看片网站| 久草成人影片| 大香焦A片| 欧美不卡在线美女| 欧美性暴力| 欧亚性爱视频免费看| 91美女视频在线免费观看| 日韩激情啪啪| 黄色十八禁| 蜜臀AV秘一区翔田千里| 国人欧美精品一区二区| 欧美少妇色综合| 亚洲国产精品成人综合| 亚洲不卡不卡中文字幕不卡 | 麻豆天美电影一区二区| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 人妻丰满熟妇一区二区三| 日本人体九九九九九九| 天天插天天操天天摸天天射天天看| 国产老太乱伦一区| 夜夜一区二区| 欧美精品一二三| 亚洲欧美精品福利在线| 综合97久久| 一区操逼日比视频| 中亚黄色三级大片| www成人啪啪18秘 免费| 欧美亚洲色的图| 一级久久久久久久久久久| 欧美成人一区二区| 亚洲色图日韩精品| 天天操美美| 人人人人插| 91 国产丝袜在线播放-百度| AV免费在线播放一区| 精品美女人人干| 久草视频分类在线| 加勒比99999| 日韩啪啪啪啪啪| 97超碰超碰| 九九无码久久精品视频| 久久中文字幕不卡人妻| 中文字幕二区日韩天堂| 84YTCOM性无码| 91处女视频在线观看| 国产熟妇 码视频户外直播| 999久久久久久久精| 国产精品内射婷婷一级二| 亚洲棕合电彰| 一级啊性爱在线视频| 亚州色图欧美色图| 久久精品视频久久久| 欧美十八禁视频| 天天超级碰碰碰| 97人人模人人爽人人| 欧美激情专区| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 1024亚洲中文字幕久在线看片你懂的| 免费视频在线一区二区不卡| 久久女同性恋一二区| 精品国产一区二区三区香蕉欧美| 亚洲人精品午夜不卡| 五月色综合| 偷拍盗拍亚洲色图图片| 精品美女少妇一区二区三区| 精品一区二区亚洲国产| 一区二区三区国产在线播放| jiujiujiujingpin| 亚洲无码一区二区三区三州| 蜜臀在线视频| 尤物视频新赏网鲜网色诱网| 四虎影视在线| 97人人模人人爽人人| 成人精品在线免费视频| 九久久精品| 色哟哟-国产专区| 一区二区三区四区免费视频| 99久久精品国产系列| 日本免费一区二区不卡 | 夜夜爽夜夜操| 十八禁电影伊人网| 在线啊啊啊啊| 桃花色涩综合影院| Av手机版天堂网| 欧美性爱一区二区三区| jiujiujiujingpin| 用力操死我| 91久操| 欧美aaaaaaa| 深夜福利黄片| 欧美碰碰综合色| 久久超碰av在线| 久久熟妇五十路一区| 五月天婷婷成人网| 女人高潮大叫一级毛片| 成人aⅴ一区二区三区| 精品无码久久久久久久杏吧| 亚洲久久久| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 久久久久久人妻一区精品色欧美| 九九热AV| 亚洲欲色| 成人青青草原伊人| 骚女高跟AV在线| 日韩丝袜人妻AV| 丁香五月天社区| 久久久网站| 激情久久久| 亚洲AV麻豆Aⅴ无码电影一| 国产精品扒开腿做爽爽爽视频| 91超碰在线观看| 91男人天堂网| 亚洲AV不卡在线观看| 日韩精品人妻中文字有码在线 | 一起草三级AV电影在线观看 | Aa东京男人的天堂| 欧美天堂第二区| 日日骚av| 九九九九亚洲| 好吊色综合| 国产日韩久久| 欧美人与动性人交a| 亚洲高潮影院| 色香欲综合| 2017大香蕉| 一本色道无码DVD中文字幕| 欧美性xxxxx狂欢| 人妻一区二区三区视频| 免费无码国产精品v片在线观看| 人人做天天爱| 伊人网综合在线视频| 亚洲暴力强奸AV| 国产亚洲禁久一区二区| 五月婷婷综合在线| 欧美色图亚洲色图成人在在线| 91美女视屏| 亚洲91网站| 天天操天天日青青草超碰av| 九九九999久久久网站| 人妻久久一区二区三区| 天堂v无码免费视频| 日韩中文字幕精品一区在线| 黄色免费网| 精品亚洲黄色片 国产精品导航一区二区| 凸凹视频在线观看| 欧美v日韩欧亚洲电影天堂色诱,国产传媒| 最新亚洲风情电影| 自拍第一页| 香蕉人欧美综合| 久久久一区二区三区三州| 性色av网站| 日本亚洲熟女视频| 国产人伦精品一区二区三区 | 欧美激情在线观看视频| 性色AV网站| 人人摸人人添人人操 | 亚洲小说视频| 麻豆国产视频精品观看| 乱伦熟女区| 亚洲欧美色综合| 9九九国产| 岛国黄片网站| 亚洲经典啪啪| 久久99999| 综合五月天| 乱伦1色页| 亚洲天堂人妻一区二区| 在线色资源| 一级片视频啪啪| www.人人cao| 青青操少妇| 91美| 色一色综合网| 98色网| 99草精| 久操网视频| 精品射1999| 欧美性夜| 国内毛片免费h片在线| 久日91在线| 蜜臀一区二区三区在线| 狠狠五月天| 精品女同一区| 国产高清精品一区二区三区毛片 | 九九热精品免费视频| 久久久成人精品| 国产Av超碰| 国色天香av| 亚洲图片欧美色| 国内三级自拍小视频在线观看| 超碰综合色| 啊v在线观看视频| 97久久超碰| 日韩欧美蜜桃精品久久中文字幕久久 | 久久久久久久 九九九九九九九| 偷拍综合亚洲| 福利操逼| 九一综合网| 中文精品一区二去| 91成人国产综合久久精品蜜月| 97操| av在线浏览| 探花视频免费观看国产专区| 亚洲人成色9999精品久久| 人妻欧美| 久草成人福利导航| 久久久97| 美女久久久久久久| 偷拍亚洲熟女视频播放| 亚洲第一二区另类图| 欧美人人曰人人操人人射射| 日han少妇无码| 日韩免费看在线黄色片| 欧美日动态视频| 乱论91| 青青久日| 校园春色之综合网| 性videos欧美熟妇hdx| 欧美一二三区四五区| 色欲久久久久综合网| 男人干美女| 国产成人一级av88| 国产自偷| 中文字暮97| 思思热在线视频免费| 91热情品| 在线观看日韩av不卡| 亚洲欧洲日韩中文字幕一区| 天美精品av| 999综合网| 久久精品天美| 欧美视频边做饭边橾| 中文字幕黄色一起草| 亚洲天堂男人在线| 中文字幕AV乱伦| 丰满人妻一区二区中文| 性爱久久| 一区二区三区亚洲| 高精欧美色| 99re6国产精品99re在线| 丁香九月婷婷| 日韩一级二级三级免费看完整版国语版| 风流老熟女一区二区三区l| 91中出在线| 天天综合有色网| 女人双腿搬开让男人桶| 欧美色亚洲| 91精品国产乱码| 精品超碰中文在线| 综合在线导航一区| 天天干人人看综合| 超碰精品人妻狠狠干| 国产av白丝| 国产精品制服丝袜清纯唯美| 日韩精品人妻| 岛国不卡超碰护士AV在线播放| 久久乐| 激情网色| 成人无遮挡毛片免费看| 久久9久久| 久久久影院| 国模少妇一区二区三区| 影音先锋日本一区二区| 青草地一本线一区二区三区| 白丝少妇一区二区| 日韩亚洲美州欧洲综三区一品在线| 成年人黄色| 夜夜高潮夜夜爽国产伦精品| 性老妇一区二区三区| 国产精品无码av在线| 韩美日操逼| 男人的天堂va| 国产超碰欧美| 超碰97首页| 青青草视频导航官网| 日韩乱码Av| 九九香蕉网| 黄片com.| 3028国产精品| 国产精品久久久久久照片| 国产精品剧情| 人妻精品一区二区三区| 久草成人影片| 另类专区加勒比| 啊啊啊啊二区好大| 青青草视频久久久久| 男人天堂2019亚洲| 婷婷五月天成人| 欧美日韩国内不卡| 人人做人人妻人人夜视频| 91在线超高颜值国产| 1769国内精品视频| 97久久国产| 久操免费观看| 欧洲亚洲少妇| 舔人妻中文免费视频| 99日免费视频中文字幕| 久久精品人妻一区二区| 69久久久久久久久久久久久| 国产天天看| 麻豆精品A片免费观看| 97天天操天天干| 97操97色| 久插不卡| 欧洲亚洲人人爽爽视频| 国模久久在线| 欧美日综合| 大香蕉中文网| 久久久久久中文| 亚州欧美在线| 超碰 欧美| 草久在线| 最新av中文字幕高清| 激情接吻视频久久久久久| 九月婷婷综合| 99国产精品免费| 中文字幕熟女人妻丝袜丝| 国产熟女无套内射| 国产精品蜜臀久久久久无码AV| 黄片aaaaa一区| 日本在线一二| 欧美另类自拍| 欲射影视| 超碰97综合网| 97超碰欧美| 七月丁香婷婷| 久草免费福利在线播放| 免費黃色視頻觀看一| 91美女丝袜诱惑视频| 国产超碰| 67914在线精品观看| 激情小说亚洲图片| 97综合激情| 亚洲综合91| 综合久久久久久久综合网| 亚洲AV成人无码久久精品播放| 三级三级三级日本99| 国产大片精久久久久久| 99国产天美| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 伊人青青一区成人视频在线观看区| 午夜欧美J进J出白浆流出久久久| 久久伊人青青草| 99re6国产精品99re| 丰满人妻-区二区三区免费看| 熟女突然公开看18禁影片| 亚洲色诱惑| 熟女天天干| 日韩精品三级| 亚洲欧洲综合成人av一区| 国产精品久久久久中文字幕| 三级三级三级日本99| 日韩精品第3页| 美女诱惑一区| 发朗少妇买婬全视频中文| 99re综合伊人| 亚洲欧洲精品视频发布| 操b网站亚洲无码| 精品人妻一区二区三区日产乱码| 中文字幕一区日韩精| 99re6国产精品99re| 蜜乳Av成人片网站| 青青操在线亚洲视频观看欧美在线| 欧美不在线| 99热精品在线| 精品国产乱码久久久| 牛黄色久午久| 欧美极品少妇| 久草福利在线资源站| 97在线资源| 草草影院最新网址| 九九九九免费高| 久久久久久日韩| 大香蕉男人的天堂| 青娱乐欧美激情一区二区| 国产超碰在线一区| 九九视频黄色片| 97色97好| 懂色中文一区二区三区 | 激情小说日韩无码| 久久夜色一区二区| 久久伊人亚洲AV无码网站| 麻豆精品A片免费观看| 日韩有码 一区二区三区| 国产精品熟女AV中文字幕在线播放| 国产精品国产精品国产| 俺去久久| 无码区蜜乳| 欧美78| 啪啪啪精品视频| 青青草导航在线视频| 韩国一级做A片免费的| 久久久无码精品人妻二区 | 成熟熟女国产精品一区二区| 久久三| 日韩本不卡视频在线观看 | 啊啊啊啊啊好大好舒服想要| 无码 黑人一区二区三区| a片亚洲一本通视频| 99久久e免费热视| 蜜屁av| 四虎AV无码| 神马久久久久久伦理片| 97精品视频在线播放| 九九热在线视频| 亚洲伊人久久综合97| 欧美国产一区二区三区麻豆传媒 | 日韩 女同 综合| 99色在线视频| 大屁股人妻女教师撅着屁股| 夜夜青青无码影院| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 国产精品色色| ji熟女.com| 欧美综合色| 4141514逼喷水三级片| 成人av影院在线观看| 五十路熟女,国产欧美精品区一区二区三区 | 日韩钢筋无码高清啾啾啾| 亚洲最大的综合性av| 国产丰满少妇久久久精品影院| 色婷婷丁香五月| 超碰97最新人妻| 大屁股xxxxx| 久久亚洲AV无码白度| 歐美性天天| 99久久9| 成人精品久久久午夜福利| 亚洲欧美啪啪| 91色噜噜狠狠| 国产亚洲99久久精品| 在线人成亚洲视频免费观看| 成人AV在线网站| 九九成人精品| 人人操av| 久久精品高清AV| 十八禁啪啪视频| 久久久久久免费电影| 少妇国产不卡| 超碰99在线观看| 嗯啊视频免费在线观看| 91老熟女| 久久成人东京热人妻| 四虎免费看黄| 欧美熟妇视频| 久久xxxx| 国产三级日产三级韩国三级| 国产精品久久久无码aV去| 久久精品久久久久久久| 久草线上视频免费看| 一本色道久久综合亚洲二区三区| 玖玖综合.com| 五月婷丁香| 性爱1区| 国产欧美岛国精品一区| 国产一区二区在线播放量| 蜜臀中文字幕| 超碰色图| 国际精品久久久| 美女丝袜激情小说| 97色涩| 丰满搜索结果 -第18页- 久久高清无码 | 嫖老熟女A片一二三区| 日本 色 导航| 亚洲无线码欧洲精品区别| 韩国一级做a久久久久| 久久二| 91亚洲网站| 国产又粗又长视频| 亚洲精品97久久中文字幕| 天天日熟妇| 日本黄色天堂| 久久精品高清无码一区| 情侣操 逼视频99| 97碰碰日本乱偷人妻中文的| 制服少妇欧美| 涩涩久久精品| 屁股久久久久久久久| 久久宗合亚洲| 九九九九九九九九九九九蜜桃| 97在线观看免费视频l| 日本最新免费韩国1区2区视频播放| 色好看av| 欧美 日韩 另类 亚洲| 久久精品老司| 六月婷婷一区二区三区| 亚洲色图综合网| 欧美激情精品久久久| 女同性恋中文字幕| 极品少妇久久久| 97色在线视频| 乱性AV| 久久国产性爱| 亚洲精品a人片在线观看视| 日本道久久综合色色| 日本人妻A片成人免费看片| 久久婷色| 超碰 97国产熟女| 天天综合网在线| 欧美一级专区免费大片| 91在线丝袜| 久久二| 国内精品久久人妻性色av| 26uuu偷拍亚洲欧洲综合| 无码精品一区二区三区潘金莲| 亚洲一本大道中文字幕无码在线| 99热最新| 亚洲人在线| 偷拍综合亚洲| 成人小电影网站tex| 91丝袜在线观看| 再深点灬舒服灬太大了添视频| 福利伊人玖玖国产| 五月综合激情| av麻豆啪啪| 五月天日日操夜夜操| 精品国产一区探花在线观看| 精品无码久久久久久国产浪潮| 亚洲女毛多水多21P| 伊人网av| 加勒比东京热五月天天堂网| 国产激情在线| 大香蕉黄色一级片免费看| 亚洲最大无码中文字幕网站| 亚洲日本韩国极品一区二区| 素颜老阿姨乱情色| juliaann丝袜| 国产精品视频麻豆入口| 久久久久久人妻| 欧洲与亚洲欧美精品中文字幕| 亚洲少妇视频| 伊人精品久久网站| 亚洲日韩一区电影| 色眯眯av| 无码不卡八戒| 色99在线| 91日日夜夜| 亚洲av青草久久一区二区| 岛国艾薇凹凸视频天堂| 搡老女人老妇女老妇老熟女怎么读| 四虎免费视频| 精品国产Av无码久久久亚洲| 亚洲成?V人片在线观看福利| 99xav| 91天天综合| 久久亚洲av成人无码国产| 大香蕉在线免| 亚洲欧美首页| 不卡免费av在线播放| 在线黄色污污网站| 偷拍综合网| 99超级碰免费视频| 91国产丝袜美女| 久久无码成人| 动漫片子网站3黄| 97综合国产| 色婷网| 久久久91福利姬| 国产操伦| 9 7超碰在线免费观看| 东北女人操逼| 天天日天天色| 96国产精品| 色噜噜人妻丝袜a∨先锋影| 伊人伊人LD| 国产精品黑人一区二区三区| 亚洲天堂中文字幕无码男同| 98超碰欧美| 日本欧美国内在线| 欧洲一区二区三区四区在线观看| 最新三级网址| 精品999日本| 人人贴人人摸| 91中文精品日韩欧美在线 | 碰碰在线视频| 中文字幕在线免费观看 | 乱伦av麻豆| 激情五月天校园春色网| 性爱免费视频成人| 成人一区二区三区四区| 亚洲国产91精品一区二区久久| 青青草依人大香蕉| 郑州宾馆老熟女露脸啪啪| 亚洲成人妻日韩在线| 中国少妇XXXX做受| 久久99草| 亚洲第一无码播放立川理惠| AV在线播放网址| 国产精品亚洲免费| 啊啊啊好大好深| 91美女中出| 男人亚洲天堂| 欧美美女在线高潮999| 五十路六十路七十路熟婆| 综合天天网| 国产操逼逼网| 97在线播放| 草草影院在线视频| 欧美Ⅴ性爱| 国产熟女| 91狼人| 天天干电影| 91在线限制级| 色天使亚洲综合在线观看| 欧美一区二区三区成人性生活| 五月天黄色激情视频| 加勒比综合在线| 99热97| 2020中文在线一区二区三区| av草草在线电影| 67914亚洲精品| 国模私拍一区二区三区神乳| 操逼无毒无码免费视频| 九九碰九九爱97超碰| 国产成人在线观看网址| 成人精品一区二区三区| www.色婷婷色综合| 亚洲精品97| 激情视频一二三| 久久怡红院| av一区二区三区四区| 97久久国产精品| 日本久久久久久久久| 在线看的av| 狠狠入| 人妻人人澡人人爽人人| 你懂得91| 国内毛片热久久思思热| 五月天亚洲网| 九九十八精品| 成人性爱电影网| 免费观看网黄| 91亚洲最新在线| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 美女网站黄页| 厕所偷拍在线| 干婷婷综合网| 伊人网青青| 台湾佬大香蕉| 欧美亚洲成人在线一区二区三区| 五月激情天| 午夜福利免费福利视频| 欧美色综合| 97 国产精品| 九九热在线精品视频| 九色 人妻 大香蕉| 偷窥自拍A片| 自怕偷自怕亚洲精品| 9久久久久| 亚洲色综网| 亚州 综合 色图| 99热超碰| 欧美激情综合色综合啪啪五月| 国产精品一级特黄aaa大片在线观看| 欧美天天弄| 亚洲综合在线91| 久操影视| 欧美视频激情久久久久久| 天天淫人人妻日日色| 9久久精品| 午夜福利视频在线一区| 人人操肉肉| 日韩精品资源专区二区| 日韩精品-原创伙伴| 97 国产精品| 欧美一区二区三区成人性生活| 人妻激情另类| 操死我了嗯嗯嗯| 亚洲综合在线高清| 天堂蜜桃无码视频一区二区| 操逼操操操91| 天天日B夜夜干B时时操B| 国产一区在线观看无码AV| 欧洲在线性爱视频| 精品一区二区三区丰满熟女-亚洲欧美一区 | 97亚洲综合在线| 偷拍亚洲情色| 欧美色图97| 搡老女人老91妇女熟女| 97爱b| 97色涩| 麻豆国产第一| 金典av| #NAME?| 97爱碰| 国产免费一区| 综合网亚洲1| 精品无人区麻豆乱码1区2区图片 | 久久东京国产精品视频| 久久久精品无码亚免费| 性色av网站| 91干熟女| 色婷婷综合视频| 2010男人的天堂| 欧美九九爱| 夜夜嗨AV蜜臀av| 久久只有精品一区二区三区| 大吊色| 日韩一级二级三级免费看完整版国语版 | 久久久一区二区| 啊啊啊啊,啊啊好多水| 青青草五月份天| 九九九九九精品视频|