成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > drf序列化器serializer的具體使用

drf序列化器serializer的具體使用

熱門標(biāo)簽:外賣地址有什么地圖標(biāo)注 銀川電話機器人電話 煙臺電話外呼營銷系統(tǒng) 企業(yè)彩鈴地圖標(biāo)注 預(yù)覽式外呼系統(tǒng) 電銷機器人錄音要學(xué)習(xí)什么 如何地圖標(biāo)注公司 上海正規(guī)的外呼系統(tǒng)最新報價 長春極信防封電銷卡批發(fā)

一、序列化器-serializer

  • 序列化,序列化器會把模型對象轉(zhuǎn)成字典,經(jīng)過response以后變成JSON字符串
  • 反序列化:把客戶端發(fā)送過來的數(shù)據(jù),經(jīng)過request以后變成字典,序列化器可以把字典轉(zhuǎn)成模型
  • 反序列化:完成數(shù)據(jù)校驗功能

二、序列化器的使用

序列化器的使用分為兩個階段:

  • 在客戶端請求時,使用序列化器可以完成對數(shù)據(jù)的反序列化。
  • 在服務(wù)器響應(yīng)時,使用序列化器可以完成對數(shù)據(jù)的序列化。

簡單使用

1、創(chuàng)建一個表模型

from django.db import models

class Books(models.Model):
    title = models.CharField(verbose_name='書名', max_length=32)
    publish = models.CharField(verbose_name='出版社', max_length=32)
    price = models.DecimalField(verbose_name='價格', max_digits=5, decimal_places=2)

2、新建一個py文件,寫一個序列化的類,繼承Serializer

3、在類中寫要序列化的字段,想序列化那個字段,就在類中寫那個字段

from rest_framework import serializers

class BooksSerializer(serializers.Serializer):
    title = serializers.CharField()
    publish = serializers.CharField()
    price = serializers.DecimalField()

4、在視圖類中使用,導(dǎo)入——》實例化得到序列化對象,把要序列化的對象傳入

5、序列化的對象.data——》是一個字典

6、把字典返回,如果不使用rest_framework提供的Response,就得使用JsonResponse

from rest_framework.views import APIView
from rest_framework.request import Request
from app01.models import Books
from app01.ser import BooksSerializer

class BookView(APIView):
    def get(self, request, pk):
        # 響應(yīng)信息
        response_msg = {'status': 200, 'message': '查詢成功'}
        # 獲取要序列化的對象
        book = Books.objects.filter(pk=pk).first()
        # 要序列化誰就把誰傳到序列化類去
        book_ser = BooksSerializer(book)
        # book_ser.data————》序列化對象.data————》就是序列化后的字典
        # 將查詢結(jié)果添加到響應(yīng)信息內(nèi)
        response_msg['data'] = book_ser.data
        return Response(response_msg)
    
 # urls.py
re_path(r'^book/(?Ppk>\d+)/', views.BookView.as_view()),

7、如果要被序列化的是包含多條數(shù)據(jù)的查詢集queryset,可以通過添加many=True參數(shù)

from rest_framework.views import APIView
from rest_framework.response import Response
from app01.models import Books
from app01.ser import BooksSerializer


class BooksView(APIView):
    def get(self, request):
        # 響應(yīng)信息
        response_msg = {'status': 200, 'message': '查詢成功'}
        books = Books.objects.all()
        # 要序列化誰就把誰傳到序列化類去
        book_ser = BooksSerializer(books, many=True)
        # book_ser.data————》序列化對象.data————》就是序列化后的字典
        # 將查詢結(jié)果添加到響應(yīng)信息內(nèi)
        response_msg['data'] = book_ser.data
        return Response(response_msg)

# urls.py
re_path(r'^books/', views.BookView.as_view()),

高級使用

source

1、可以修改字段名字

class BooksSerializer(serializers.Serializer):
    xxx = serializers.CharField(source='title')  # 相當(dāng)于——》xxx = Books.title
      
# 響應(yīng)
{
    "status": 200,
    "message": "查詢成功",
    "data": {
        "xxx": "魔道祖師"   ————》響應(yīng)的字段名被修改了
    }
}

2、可以跨表查詢

class BookSerializer(serializers.Serializer):
    publish_email = serializers.CharField(source='publish.email')
    # 相當(dāng)于——》publish_email = Book.publish.email 連表查詢publish表的email字段
    
    
# 響應(yīng)
{
    "status": 200,
    "message": "查詢成功",
    "data": {
        "publish_email": "modao@163.com"
    }
}

3、可以執(zhí)行方法

# models.py
class Book(models.Model):
    title = models.CharField(max_length=32)
    price = models.IntegerField()
    pub_date = models.DateTimeField()
    publish = models.ForeignKey("Publish", on_delete=models.CASCADE, null=True)
    authors = models.ManyToManyField("Author")

    def func(self):
        return '666666'

    
# ser.py
class BookSerializer(serializers.Serializer):
    msg = serializers.CharField(source='func')
    # msg = Book.func  ——》調(diào)用Book類中的func()方法的返回值
    
    
# 響應(yīng)
{
    "status": 200,
    "message": "查詢成功",
    "data": {
        "msg": "666666"
    }
}

**SerializerMethodField( ) **

它需要有一個配套的方法,方法名叫做get_字段名,返回值就是要顯示的東西

class BookSerializer(serializers.Serializer):
    authors = serializers.SerializerMethodField()

    def get_authors(self, instance):
        # instance ——》 Book對象
        authors = instance.authors.all()    # 取出所有作者
        author_list = []
        for author in authors:
            author_list.append({'name': author.name, 'age': author.age})
        return author_list

通用參數(shù)

read_only:(只讀)表明該字段僅用于序列化輸出,默認(rèn)False,如果設(shè)置成True,響應(yīng)中可以看到該字段,修改時,不需要傳該字段

write_only:(只寫)表明該字段僅用于反序列化輸入,默認(rèn)False,如果設(shè)置成True,響應(yīng)中看不到該字段,修改時,該字段需要傳

from rest_framework import serializers

class BooksSerializer(serializers.Serializer):
    title = serializers.CharField(read_only = True)  # 響應(yīng)中能看到改字段,修改不需要傳值
    publish = serializers.CharField(write_only = True) # 響應(yīng)中看不到改字段,修改需要傳值
    price = serializers.DecimalField()

還有參數(shù)如下:

  • required  表明該字段在反序列化時必須輸入,默認(rèn)True
  • default   反序列化時使用的默認(rèn)值
  • allow_null  表明該字段是否允許傳入None,默認(rèn)False
  • validators  該字段使用的驗證器
  • error_messages 包含錯誤編號與錯誤信息的字典

三、反序列化數(shù)據(jù)校驗

當(dāng)使用序列化器對數(shù)據(jù)進(jìn)行反序列化時,就需要對數(shù)據(jù)進(jìn)行校驗了,只有校驗成功的數(shù)據(jù)才能被保存成模型類對象

將要校驗的數(shù)據(jù)傳入序列化器中并實例化:obj = BooksSerializer(data=request.data),調(diào)用is_valid()方法校驗,校驗成功返回True,失敗返回False。

失敗,可以通過序列化器對象的errors獲取錯誤信息(字典)

成功,可以公共序列化對象的validated_data屬性獲取數(shù)據(jù)。

校驗方法有:局部鉤子,全局鉤子,validators,和序列化類型和字段屬性也是

字段屬性

  • max_length  最大長度
  • min_lenght  最小長度
  • allow_blank  是否允許為空
  • trim_whitespace 是否截斷空白字符
  • max_value  最小值
  • min_value  最大值

局部鉤子

在序列化器類中創(chuàng)建局部鉤子:validate_字段名,并且接收一個參數(shù)

# ser.py
class BooksSerializer(serializers.Serializer):
    title = serializers.CharField()
    publish = serializers.CharField()
    price = serializers.DecimalField(max_digits=5, decimal_places=2)
    
    # 局部鉤子對price字段校驗
    def validate_price(self, data):
        if float(data) > 20:
            # 校驗成功就通過
            return data
        else:
            # 校驗失敗就拋異常
            raise ValidationError('價格太低')

全局鉤子

全局鉤子:validate( ), 接收一個參數(shù),

同時對多個字段進(jìn)行比較驗證

# ser.py
class BooksSerializer(serializers.Serializer):
    title = serializers.CharField()
    publish = serializers.CharField()
    price = serializers.DecimalField(max_digits=5, decimal_places=2)
    
def validate(self, validate_data):
    title = validate_data.get('title')
    publish = validate_data.get('publish')
    if not title == publish:
        return validate_data
    else:
        raise ValidationError('書名和出版社不能一致')

validators

使用字段的validators=[func],來校驗

# ser.py
# 校驗函數(shù)
def check_price(data):
    if float(data) > 10:
        return data
    else:
        raise ValidationError('價格太低')

class BooksSerializer(serializers.Serializer):
    title = serializers.CharField()
    publish = serializers.CharField()
    price = serializers.CharField(validators=[check_price]) # 配置

四、序列化器操作數(shù)據(jù)

查詢所有

# views.py
class BooksView(APIView):
    def get(self, request):
        # 響應(yīng)信息
        response_msg = {'status': 200, 'message': '查詢成功'}
        # 獲取所有數(shù)據(jù)
        books = Books.objects.all()
        # 把數(shù)據(jù)誰傳到序列化器中
        book_ser = BooksSerializer(instance=books, many=True) # 序列化多條需要加 many=True
        # book_ser.data————》序列化對象.data————》就是序列化后的字典
        # 將查詢結(jié)果添加到響應(yīng)信息內(nèi)
        response_msg['data'] = book_ser.data
        return Response(response_msg)
    
# urls.py
path('books/', views.BooksView.as_view()),

查詢單條

# views.py
class BookView(APIView):
    def get(self, request, pk):
        # 響應(yīng)信息
        response_msg = {'status': 200, 'message': '查詢成功'}
        # 獲取要序列化的對象
        book = Books.objects.filter(pk=pk).first()
        # 要序列化誰就把誰傳到序列化器中
        book_ser = BooksSerializer(instance=book)
        # book_ser.data————》序列化對象.data————》就是序列化后的字典
        # 將查詢結(jié)果添加到響應(yīng)信息內(nèi)
        response_msg['data'] = book_ser.data
        return Response(response_msg)
    
# urls.py
re_path(r'^book/(?Ppk>\d+)/', views.BookView.as_view()),

新增數(shù)據(jù)

新增數(shù)據(jù)需要在序列化器中重寫create( ) 方法:

注意沒有傳遞instance實例,則調(diào)用save()方法的時候,create()被調(diào)用,相反,如果傳遞了instance實例,調(diào)用save()方法的時候,update()被調(diào)用。

# views.py
class BookView(APIView):
    def post(self, request):
        # 響應(yīng)信息
        response_msg = {'status': 201, 'message': '增加成功'}
        # 修改才有instance,新增沒有instance,只有data
        book_ser = BooksSerializer(data=request.data)

        # 校驗字段
        if book_ser.is_valid():
            book_ser.save()  # 需要在序列化器中重寫create()方法
            # 保存成功把原數(shù)據(jù)返回
            response_msg['data'] = book_ser.data
        else:
            response_msg['status'] = 202
            response_msg['message'] = '數(shù)據(jù)校驗失敗'
            response_msg['data'] = book_ser.error_messages
        return Response(response_msg)
    
    
# ser.py
class BooksSerializer(serializers.Serializer):
    title = serializers.CharField()
    publish = serializers.CharField()
    price = serializers.DecimalField(max_digits=5, decimal_places=2)

    # 重寫create
    def create(self, validated_data):   # validated_data——>傳入的新增數(shù)據(jù)
        instance = Books.objects.create(**validated_data)
        # instance——> 新增的字段對象,需要返回
        return instance
       
# urls.py
path('book/', views.BookView.as_view()),

修改數(shù)據(jù)

修改數(shù)據(jù)需要在序列化器中重寫update( ) 方法:

# views.py
class BookView(APIView):
    def put(self, request, pk):
        # 響應(yīng)信息
        response_msg = {'status': 200, 'message': '修改成功'}
        # 獲取需要修改的字段對象
        book = Books.objects.filter(pk=pk).first()
        # 將字段對象和修改數(shù)據(jù)添加到序列化器中
        book_ser = BooksSerializer(instance=book, data=request.data)

        # 校驗數(shù)據(jù)
        if book_ser.is_valid():
            book_ser.save()     # 需要在序列化器中重寫update()方法
            response_msg['data'] = book_ser.data
        else:
            response_msg['status'] = 202
            response_msg['message'] = '數(shù)據(jù)校驗失敗'
            response_msg['data'] = book_ser.error_messages
        return Response(response_msg)
    
# urls.py
re_path('book/(?Ppk>\d+)', views.BookView.as_view()),

刪除數(shù)據(jù)

# views.py
class BooksView(APIView):
    def delete(self, request, pk):
    # 響應(yīng)信息
    response_msg = {'status': 200, 'message': '刪除成功'}
    # 刪除數(shù)據(jù)
    Books.objects.filter(pk=pk).delete()
    return Response(response_msg)
    
# urls.py
re_path('book/(?Ppk>\d+)', views.BooksView.as_view()),

五、模型類序列化器

DRF提供了ModelSerializer模型類序列化器來幫助我們快速創(chuàng)建一個Serializer類。

ModelSerializer與常規(guī)的Serializer相同,但是提供了:

  • 基于模型類自動生成一系列字段
  • 基于模型類自動為Serializer生成validators,比如unique_together
  • 包含默認(rèn)的create( ) 和update( )。

實例:

class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book        # 指明參照那個模型類
        fields = '__all__'  # 為模型類的那些字段生成

字段操作

1、可以使用fields來明確字段,__all__表示包含所以字段,具體那些字段->fields = ('title','price')

2、exclude表示排除那些字段,不能和fields一起寫——>exclude = ('price',)

3、額外參數(shù)extra_kwargs,給字段添加額外的參數(shù)

class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book        # 指明參照那個模型類
        fields = '__all__'  # 為模型類的那些字段生成
  
        # 類似于  title = serializers.CharField(read_only = True)
        extra_kwargs = {
            'title': {'read_only': True},
        }

六、源碼分析many=True

當(dāng)我們需要查詢多條數(shù)據(jù)時就需要在實例化序列化器的時候傳many=True

book_ser = BooksSerializer(instance=books, many=True) # 查詢多條
book_one_ser = BooksSerializer(instance=book) # 查詢單條

print(type(book_ser))
#class 'rest_framework.serializers.ListSerializer'>

print(type(book_one_ser))
#class 'app01.ser.BookModelSerializer'>

# 對象的生成-->先調(diào)用類的__new__方法,生成空對象,如果many=True,生成ListSerializer對象,反之生成Serializer對象

# 類的__new__方法控制對象的生成
def __new__(cls, *args, **kwargs):
    # 如果many=True,就會自動創(chuàng)建ListSerializer類
    if kwargs.pop('many', False):
        return cls.many_init(*args, **kwargs)
    return super().__new__(cls, *args, **kwargs)

到此這篇關(guān)于drf序列化器serializer的具體使用的文章就介紹到這了,更多相關(guān)drf序列化器serializer內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • DRF跨域后端解決之django-cors-headers的使用
  • django DRF圖片路徑問題的解決方法
  • Django框架之DRF 基于mixins來封裝的視圖詳解
  • DRF使用simple JWT身份驗證的實現(xiàn)
  • Django DRF APIView源碼運行流程詳解
  • python drf各類組件的用法和作用
  • DRF框架API版本管理實現(xiàn)方法解析
  • Django drf請求模塊源碼解析

標(biāo)簽:佳木斯 盤錦 上饒 潮州 湖北 珠海 西寧 宜昌

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《drf序列化器serializer的具體使用》,本文關(guān)鍵詞  drf,序列化,器,serializer,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《drf序列化器serializer的具體使用》相關(guān)的同類信息!
  • 本頁收集關(guān)于drf序列化器serializer的具體使用的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    日韩成人a**站| 岳张嘴把我的精子吞下去| 日韩电影在线一区| a级在线免费观看| 亚洲免费视频一区二区三区| 91美女在线观看| 日韩一级片在线观看| 日韩福利一区二区| 亚洲国产精品精华液网站| 国产一区999| 国产日韩亚洲| 成人欧美亚洲| 在线看a视频| 国产精品亚洲一区二区在线观看| 尹人成人综合网| 日本夜夜草视频网站| 影音先锋黄色资源| 欧美猛男超大videosgay| 波多野结衣办公室33分钟| 欧美性受xxxx黑人xyx性爽| 中文字幕亚洲一区二区av在线| 91精品综合| 国产日韩欧美精品在线| 成人a在线视频| 亚洲网站情趣视频| 亚洲私拍自拍| 亚洲欧洲中文字幕| 欧美久久久久久久久久久久久| 综合久久久久久| 折磨小男生性器羞耻的故事| sis001亚洲原创区| 国产剧情在线一区| 欧美一级在线免费观看| 日韩欧美视频在线| 中文字幕免费国产精品| 亚洲一二在线观看| 久久夜色精品亚洲噜噜国产mv| 中文字幕一区三区| а√天堂中文在线资源8| 成人黄色中文字幕| 成人激情小说乱人伦| 亚洲精品性视频| 欧美日韩在线另类| 国产一区高清在线| 一区二区三区天堂av| 影音先锋亚洲一区| 另类小说综合欧美亚洲| 久久亚洲精精品中文字幕| 精品人妻人人做人人爽夜夜爽| 国产精品91久久久久久| 国精产品一品二品国精品69xx| 能看毛片的网站| 欧美大片网址| 久久理论电影| 久久免费视频2| 久久蜜桃av| 日韩一区二区在线免费| 全部孕妇毛片丰满孕妇孕交| 国产97色在线 | 日韩| 欧美黑粗硬大| 亚洲AV第二区国产精品| av在线播放网| 色综合视频网站| 国产精品成人一区二区三区夜夜夜| 亚洲人成网77777色在线播放| 美女不穿衣服的网站| hbad中文字幕| 亚洲国产综合人成综合网站| 国产一级电影网| www.99色.com| 男女下面一进一出无遮挡| 中文字幕精品在线| 国产精品久久久久久久久久久久久久久久| 天天综合天天做| 国产色无码精品视频国产| 免费看欧美黑人毛片| 手机在线视频你懂的| 在线播放日韩精品| 美国精品一区二区| 精品成人av一区二区三区| 日韩欧美精品电影| 国产成人三级在线播放| 欧美日韩一卡二卡三卡| 亚洲国产无线乱码在线观看| 一区二区三区免费| 亚洲激情不卡| 99久久精品一区二区| 日本一区二区三区四区五区| 精品美女在线观看视频在线观看| 久久躁日日躁aaaaxxxx| 国产特黄在线| 午夜激情在线视频| 国产日韩欧美一区二区东京热| 久久影院午夜片一区| 日韩一区二区三区观看| ijzzijzzij亚洲大全| 波多野结衣av一区二区全免费观看| h片在线观看下载| 午夜精品一区二区三区电影天堂| 国产乱子伦精品无码专区| 精品国产一区二区三区在线观看| 一区二区在线中文字幕电影视频| 波多野结衣之无限发射| 在线视频欧美日韩精品| 免费观看污网站| 国产又粗又长又硬| 国产免费一区二区三区视频| √新版天堂资源在线资源| 欧美影片第一页| 在线精品视频一区二区| 欧美不卡福利| 满满都是荷尔蒙韩剧在线观看| 国精品日韩欧美一区二区三区| 久久综合第一页| 精品国产凹凸成av人导航| 亚洲一区二区色| 法国空姐电影在线观看| 福利片在线一区二区| 亚洲AV无码精品自拍| 青青草免费观看完整版高清| 自拍偷自拍亚洲精品播放| 丝袜美腿成人在线| 国产成人精品毛片| 国产91精品在线观看| 精品久久av| 国产freexxxx性播放麻豆| 激情小说一区| 欧美美女性生活视频| 久久精品一区二区三区四区五区| 久久精品国产99久久99久久久| xxxwww国产| 国产精品资源在线| 久久激五月天综合精品| 天天操天天舔天天干| 欧美日韩三区| 成人免费视频入口| 美女视频黄免费的久久| 久久青青草原一区二区| 欧美刺激脚交jootjob| 亚洲欧美国内爽妇网| 狠狠躁夜夜躁人人爽视频| 精品国产乱码久久久久久闺蜜| 国产理论在线观看| 三级小说欧洲区亚洲区| 四虎4hu新地址入口2023| 在线播放一区二区精品视频| 国产伦精品一区二区三区视频| 一二三四视频社区在线| www 久久久| 在线观看亚洲电影| 一本大道色婷婷在线| 国产探花视频在线| 国产精品久久久久久久久久久免费看| 777久久精品一区二区三区无码| 婷婷丁香激情综合| 国产精品网曝门| caoporn国产| 久久久免费av| 中文岛国精品亚洲一区| 亚洲视频免费在线观看| 欧美成人一区二区三区电影| 久久久久xxxx| 免费av福利| 久久人91精品久久久久久不卡| 亚洲欧美国产视频| 99久久免费国产精品| 免费在线视频欧美| 人妻精品一区二区三区| 制服.丝袜.亚洲.中文.综合懂| 久久青青草原亚洲av无码麻豆| 日韩电影中文 亚洲精品乱码| 亚洲精品国产suv| www.se五月| 久久嫩草精品久久久久| 日本精品免费观看| 国产精品 欧美 日韩| 手机av在线网站| 一本到一区二区三区| 亚洲淫片在线视频| 99国精产品一二二线| 精品欧美一区二区在线观看| 一个人免费视频www在线观看| 99高清免费国产自产拍| 久久不见久久见中文字幕免费| 亚洲欧美自拍一区| 国产精品suv一区二区88| 久久狠狠一本精品综合网| 日日爱夜夜操| 四虎精品一区二区免费| 午夜裸体女人视频网站在线观看| 欧美精品黄色| 在线视频尤物| 热国产热中文视频二区| 亚洲国产小视频| 原谅我中文字幕| 免费人成在线观看视频播放| 国产美女精品一区二区三区| www.五月天色| 日本成人三级电影网站| 92看片淫黄大片欧美看国产片| 26uuu成人网一区二区三区| 欧美激情网站在线观看| 女优一区二区三区| 成黄免费在线| 中文字幕97| 日韩欧美在线观看一区二区三区| 欧美一级久久久久久久久大| 都市激情久久久久久久久久久| 日韩av高清在线看片| japanesexxxxfree在线观看| 亚洲ai欧洲av| 亚洲国产91视频| 精品国产乱码久久久久久鸭王1| 亚洲欧美文学| 男生女生差差差的视频在线观看| 在线观看成人av| 成人影院入口| 久久久久久久久久久免费精品| 国产米奇在线777精品观看| 青青青手机在线视频| 就爱干草视频| 亚洲精品国产无码| 亚洲最新av网址| 中文字幕 国产精品| 亚洲自拍偷拍网站| 男人操女人的视频网站| 亚洲无限乱码一二三四麻| 国产日韩欧美视频在线| 992tv在线| 欧美日韩精品中文字幕| 欧美一区二不卡视频| 欧美丰满少妇xxxxx高潮对白| 欧美国产日本在线| wwwww在线观看免费视频| 一区二区三区精品在线观看| 日本成人不卡| 亚洲精品一区二区三区影院忠贞| 色中色综合成人| 欧美激情三区| 欧美 日韩 精品| 国产伦一区二区三区色一情| 精品动漫一区二区三区在线观看| 另类小说综合网| 日本中文字幕中出在线| 午夜免费播放观看在线视频| 国产乱码精品一区二区三区不卡| 18岁网站在线观看| 久草在线视频资源| 欧美成人综合色| 久久99久久99精品免观看粉嫩| 久久精品一区二区三区不卡免费视频| 性欧美freesex顶级少妇| 中日韩免视频上线全都免费| 不许穿内裤随时挨c调教h苏绵| 中文字幕精品国产| 中文字幕日韩免费| 欧美肥臀大乳一区二区免费视频| 国产老妇伦国产熟女老妇视频| 中文字幕av一区| 国产又大又黄又粗的视频| 性色av一区二区怡红| 91free张津瑜movies| 69视频在线观看免费| 国语精品免费视频| 久久久久久一区| 亚洲午夜久久久久久久久电影网| 亚洲色成人www永久网站| 97成人资源| 亚洲成人av资源网| 4438成人网| 欧美不卡一区二区三区| 精品成人一区二区三区免费视频| 亚洲色图美国十次| 中文字幕在线永久在线视频| 亚洲一区二区三区视频播放| 久久婷五月综合| 福利精品视频在线| 国产精品嫩草影院一区二区| a天堂中文字幕| 欧美激情第1页| 亚洲午夜一二三区视频| 高清免费电影在线观看| 免费看一级大片| 欧美日韩精品免费观看视频| 国产91九色蝌蚪| 亚洲三级免费| 精品人妻少妇AV无码专区| 116极品美女午夜一级| 午夜免费久久看| 免费亚洲婷婷| 国产三级电影| 99久久久精品免费观看国产蜜| 美女禁区视频免费观看精选| 天天摸天天操天天爽| 蜜桃a∨噜噜一区二区三区| 国产性xxxx18免费观看视频| 亚洲免费一区三区| 一个色免费成人影院| 98精品国产自产在线观看| 一本到在线视频| 久久久久久久久久久久久久一区| 捷克做爰xxxⅹ性视频| 国产91精品高潮白浆喷水| 中国女人一级毛片| 午夜精品亚洲| 久久久久久久久久电影| wwwww在线观看| a美女胸又www黄视频久久| 亚洲www色| 成人男女网免费| 久久亚洲无码视频| 亚洲欧美中文字幕在线一区| 亚洲av成人精品一区二区三区| 久久久久久草| 欧美最顶级a∨艳星| 性欧美一区二区| 在线观看av网| 国产三级在线看| 91精品国产99| 国产福利小视频在线观看| 日韩和的一区二区| 国产福利一区二区三区| 精品一区二区91| 免费日韩成人| 日本三级久久| 精品香蕉视频| www.亚洲视频| 最近2018年中文字幕在线|