日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django之ORM

發布時間:2023/12/10 编程问答 80 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django之ORM 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ORM介紹

ORM概念

ORM就是對象關系映射(Object Relational Mapping)的縮寫,顧名思義就是一種為了解決面向對象與關系數據庫存在的互不匹配的現象的技術。

簡單的說,ORM是通過使用描述對象和數據庫之間映射的元數據,將程序中的對象自動持久化到關系數據庫中。

ORM在業務邏輯層和數據庫層之間充當了橋梁的作用。

ORM由來

字母O起源于"對象"(Object),而R則來自于"關系"(Relational)。

幾乎所有的軟件開發過程中都會涉及到對象和關系數據庫。在用戶層面和業務邏輯層面,我們是面向對象的。當對象的信息發生變化的時候,我們就需要把對象的信息保存在關系數據庫中。

按照之前的方式來進行開發就會出現程序員會在自己的業務邏輯代碼中夾雜很多SQL語句用來增加、讀取、修改、刪除相關數據,而這些代碼通常都是重復的。

ORM優勢

ORM解決的主要問題是對象和關系的映射。它通常把一個類和一個表一一對應,類的每個實例對應表中的一條記錄,類的每個屬性對應表中的每個字段。?

ORM提供了對數據庫的映射,不用直接編寫SQL代碼,只需像操作對象一樣從數據庫操作數據。

讓軟件開發人員專注于業務邏輯的處理,提高了開發效率。

ORM劣勢

ORM的缺點是會在一定程度上犧牲程序的執行效率。

ORM用多了SQL語句就不會寫了,關系數據庫相關技能退化..

Django中的ORM

Django項目中使用MySQL數據庫

1. 在Django項目的settings.py文件中,配置數據庫連接信息:

DATABASES = {"default": {"ENGINE": "django.db.backends.mysql","NAME": "你的數據庫名稱", # 需要自己手動創建數據庫"USER": "數據庫用戶名","PASSWORD": "數據庫密碼","HOST": "數據庫IP","POST": 3306} }

2. 在Django項目的__init__.py文件中寫如下代碼,告訴Django使用pymysql模塊連接MySQL數據庫:

import pymysqlpymysql.install_as_MySQLdb()

Model

在Django中model是你數據的單一、明確的信息來源。它包含了你存儲的數據的重要字段和行為。通常,一個模型(model)映射到一個數據庫表,

基本情況:

每個模型都是一個Python類,它是django.db.models.Model的子類。

模型的每個屬性都代表一個數據庫字段。

綜上所述,Django為您提供了一個自動生成的數據庫訪問API,詳詢https://docs.djangoproject.com/en/2.0/topics/db/queries/。

快速入門

下面這個例子定義了一個?Person?模型,包含?first_name?和?last_name。

from django.db import modelsclass Person(models.Model):first_name = models.CharField(max_length=30)last_name = models.CharField(max_length=30)

first_name?和?last_name?是模型的字段。每個字段被指定為一個類屬性,每個屬性映射到一個數據庫列。

上面的?Person?模型將會像這樣創建一個數據庫表:

CREATE TABLE myapp_person ("id" serial NOT NULL PRIMARY KEY,"first_name" varchar(30) NOT NULL,"last_name" varchar(30) NOT NULL );

補充說明:

表myapp_person的名稱是自動生成的,如果你要自定義表名,需要在model的Meta類中指定?db_table?參數,強烈建議使用小寫表名,特別是使用MySQL作為后端數據庫時。

id字段是自動添加的,如果你想要指定自定義主鍵,只需在其中一個字段中指定?primary_key=True?即可。如果Django發現你已經明確地設置了Field.primary_key,它將不會添加自動ID列。

本示例中的CREATE TABLE SQL使用PostgreSQL語法進行格式化,但值得注意的是,Django會根據配置文件中指定的數據庫后端類型來生成相應的SQL語句。

Django支持MySQL5.5及更高版本。

字段

AutoField(Field)- int自增列,必須填入參數 primary_key=TrueBigAutoField(AutoField)- bigint自增列,必須填入參數 primary_key=True注:當model中如果沒有自增列,則自動會創建一個列名為id的列from django.db import modelsclass UserInfo(models.Model):# 自動創建一個列名為id的且為自增的整數列username = models.CharField(max_length=32)class Group(models.Model):# 自定義自增列nid = models.AutoField(primary_key=True)name = models.CharField(max_length=32)SmallIntegerField(IntegerField):- 小整數 -32768 ~ 32767PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField)- 正小整數 0 ~ 32767IntegerField(Field)- 整數列(有符號的) -2147483648 ~ 2147483647PositiveIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField)- 正整數 0 ~ 2147483647BigIntegerField(IntegerField):- 長整型(有符號的) -9223372036854775808 ~ 9223372036854775807BooleanField(Field)- 布爾值類型NullBooleanField(Field):- 可以為空的布爾值CharField(Field)- 字符類型- 必須提供max_length參數, max_length表示字符長度TextField(Field)- 文本類型EmailField(CharField):- 字符串類型,Django Admin以及ModelForm中提供驗證機制IPAddressField(Field)- 字符串類型,Django Admin以及ModelForm中提供驗證 IPV4 機制GenericIPAddressField(Field)- 字符串類型,Django Admin以及ModelForm中提供驗證 Ipv4和Ipv6- 參數:protocol,用于指定Ipv4或Ipv6, 'both',"ipv4","ipv6"unpack_ipv4, 如果指定為True,則輸入::ffff:192.0.2.1時候,可解析為192.0.2.1,開啟此功能,需要protocol="both"URLField(CharField)- 字符串類型,Django Admin以及ModelForm中提供驗證 URLSlugField(CharField)- 字符串類型,Django Admin以及ModelForm中提供驗證支持 字母、數字、下劃線、連接符(減號)CommaSeparatedIntegerField(CharField)- 字符串類型,格式必須為逗號分割的數字UUIDField(Field)- 字符串類型,Django Admin以及ModelForm中提供對UUID格式的驗證FilePathField(Field)- 字符串,Django Admin以及ModelForm中提供讀取文件夾下文件的功能- 參數:path, 文件夾路徑match=None, 正則匹配recursive=False, 遞歸下面的文件夾allow_files=True, 允許文件allow_folders=False, 允許文件夾FileField(Field)- 字符串,路徑保存在數據庫,文件上傳到指定目錄- 參數:upload_to = "" 上傳文件的保存路徑storage = None 存儲組件,默認django.core.files.storage.FileSystemStorageImageField(FileField)- 字符串,路徑保存在數據庫,文件上傳到指定目錄- 參數:upload_to = "" 上傳文件的保存路徑storage = None 存儲組件,默認django.core.files.storage.FileSystemStoragewidth_field=None, 上傳圖片的高度保存的數據庫字段名(字符串)height_field=None 上傳圖片的寬度保存的數據庫字段名(字符串)DateTimeField(DateField)- 日期+時間格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]DateField(DateTimeCheckMixin, Field)- 日期格式 YYYY-MM-DDTimeField(DateTimeCheckMixin, Field)- 時間格式 HH:MM[:ss[.uuuuuu]]DurationField(Field)- 長整數,時間間隔,數據庫中按照bigint存儲,ORM中獲取的值為datetime.timedelta類型FloatField(Field)- 浮點型DecimalField(Field)- 10進制小數- 參數:max_digits,小數總長度decimal_places,小數位長度BinaryField(Field)- 二進制類型 字段相關內容

自定義字段

class UnsignedIntegerField(models.IntegerField):def db_type(self, connection):return 'integer UNSIGNED'PS: 返回值為字段在數據庫中的屬性,Django字段默認的值為:'AutoField': 'integer AUTO_INCREMENT','BigAutoField': 'bigint AUTO_INCREMENT','BinaryField': 'longblob','BooleanField': 'bool','CharField': 'varchar(%(max_length)s)','CommaSeparatedIntegerField': 'varchar(%(max_length)s)','DateField': 'date','DateTimeField': 'datetime','DecimalField': 'numeric(%(max_digits)s, %(decimal_places)s)','DurationField': 'bigint','FileField': 'varchar(%(max_length)s)','FilePathField': 'varchar(%(max_length)s)','FloatField': 'double precision','IntegerField': 'integer','BigIntegerField': 'bigint','IPAddressField': 'char(15)','GenericIPAddressField': 'char(39)','NullBooleanField': 'bool','OneToOneField': 'integer','PositiveIntegerField': 'integer UNSIGNED','PositiveSmallIntegerField': 'smallint UNSIGNED','SlugField': 'varchar(%(max_length)s)','SmallIntegerField': 'smallint','TextField': 'longtext','TimeField': 'time','UUIDField': 'char(32)', 自定義一個無符號整數字段

自定義char類型字段:

class FixedCharField(models.Field):"""自定義的char類型的字段類"""def __init__(self, max_length, *args, **kwargs):self.max_length = max_lengthsuper(FixedCharField, self).__init__(max_length=max_length, *args, **kwargs)def db_type(self, connection):"""限定生成數據庫表的字段類型為char,長度為max_length指定的值"""return 'char(%s)' % self.max_lengthclass Class(models.Model):id = models.AutoField(primary_key=True)title = models.CharField(max_length=25)# 使用自定義的char類型的字段cname = FixedCharField(max_length=25)

創建的表結構:

注意事項

1.觸發Model中的驗證和錯誤提示有兩種方式:a. Django Admin中的錯誤信息會優先根據Admiin內部的ModelForm錯誤信息提示,如果都成功,才來檢查Model的字段并顯示指定錯誤信息b. 使用ModelFormc. 調用Model對象的 clean_fields 方法,如:# models.pyclass UserInfo(models.Model):nid = models.AutoField(primary_key=True)username = models.CharField(max_length=32)email = models.EmailField(error_messages={'invalid': '格式錯了.'})# views.pydef index(request):obj = models.UserInfo(username='11234', email='uu')try:print(obj.clean_fields())except Exception as e:print(e)return HttpResponse('ok')# Model的clean方法是一個鉤子,可用于定制操作,如:上述的異常處理。2.Admin中修改錯誤提示# admin.pyfrom django.contrib import adminfrom model_club import modelsfrom django import formsclass UserInfoForm(forms.ModelForm):age = forms.IntegerField(initial=1, error_messages={'required': '請輸入數值.', 'invalid': '年齡必須為數值.'})class Meta:model = models.UserInfo# fields = ('username',)fields = "__all__"exclude = ['title']labels = { 'name':'Writer', }help_texts = {'name':'some useful help text.',}error_messages={ 'name':{'max_length':"this writer name is too long"} }widgets={'name':Textarea(attrs={'cols':80,'rows':20})}class UserInfoAdmin(admin.ModelAdmin):form = UserInfoFormadmin.site.register(models.UserInfo, UserInfoAdmin) 注意事項

字段參數

null 數據庫中字段是否可以為空db_column 數據庫中字段的列名default 數據庫中字段的默認值primary_key 數據庫中字段是否為主鍵db_index 數據庫中字段是否可以建立索引unique 數據庫中字段是否可以建立唯一索引unique_for_date 數據庫中字段【日期】部分是否可以建立唯一索引unique_for_month 數據庫中字段【月】部分是否可以建立唯一索引unique_for_year 數據庫中字段【年】部分是否可以建立唯一索引verbose_name Admin中顯示的字段名稱blank Admin中是否允許用戶輸入為空editable Admin中是否可以編輯help_text Admin中該字段的提示信息choices Admin中顯示選擇框的內容,用不變動的數據放在內存中從而避免跨表操作如:gf = models.IntegerField(choices=[(0, '何穗'),(1, '大表姐'),],default=1)error_messages 自定義錯誤信息(字典類型),從而定制想要顯示的錯誤信息;字典健:null, blank, invalid, invalid_choice, unique, and unique_for_date如:{'null': "不能為空.", 'invalid': '格式錯誤'}validators 自定義錯誤驗證(列表類型),從而定制想要的驗證規則from django.core.validators import RegexValidatorfrom django.core.validators import EmailValidator,URLValidator,DecimalValidator,\MaxLengthValidator,MinLengthValidator,MaxValueValidator,MinValueValidator如:test = models.CharField(max_length=32,error_messages={'c1': '優先錯信息1','c2': '優先錯信息2','c3': '優先錯信息3',},validators=[RegexValidator(regex='root_\d+', message='錯誤了', code='c1'),RegexValidator(regex='root_112233\d+', message='又錯誤了', code='c2'),EmailValidator(message='又錯誤了', code='c3'), ]) 字段參數

元信息

class UserInfo(models.Model):nid = models.AutoField(primary_key=True)username = models.CharField(max_length=32)class Meta:# 數據庫中生成的表名稱 默認 app名稱 + 下劃線 + 類名db_table = "table_name"# 聯合索引index_together = [("pub_date", "deadline"),]# 聯合唯一索引unique_together = (("driver", "restaurant"),)# admin中顯示的表名稱 verbose_name# verbose_name加sverbose_name_plural 元信息

多表關系和參數

ForeignKey(ForeignObject) # ForeignObject(RelatedField)to, # 要進行關聯的表名to_field=None, # 要關聯的表中的字段名稱on_delete=None, # 當刪除關聯表中的數據時,當前表與其關聯的行的行為- models.CASCADE,刪除關聯數據,與之關聯也刪除- models.DO_NOTHING,刪除關聯數據,引發錯誤IntegrityError- models.PROTECT,刪除關聯數據,引發錯誤ProtectedError- models.SET_NULL,刪除關聯數據,與之關聯的值設置為null(前提FK字段需要設置為可空)- models.SET_DEFAULT,刪除關聯數據,與之關聯的值設置為默認值(前提FK字段需要設置默認值)- models.SET,刪除關聯數據,a. 與之關聯的值設置為指定值,設置:models.SET(值)b. 與之關聯的值設置為可執行對象的返回值,設置:models.SET(可執行對象)def func():return 10class MyModel(models.Model):user = models.ForeignKey(to="User",to_field="id"on_delete=models.SET(func),)related_name=None, # 反向操作時,使用的字段名,用于代替 【表名_set】 如: obj.表名_set.all()related_query_name=None, # 反向操作時,使用的連接前綴,用于替換【表名】 如: models.UserGroup.objects.filter(表名__字段名=1).values('表名__字段名')limit_choices_to=None, # 在Admin或ModelForm中顯示關聯數據時,提供的條件:# 如:- limit_choices_to={'nid__gt': 5}- limit_choices_to=lambda : {'nid__gt': 5}from django.db.models import Q- limit_choices_to=Q(nid__gt=10)- limit_choices_to=Q(nid=8) | Q(nid__gt=10)- limit_choices_to=lambda : Q(Q(nid=8) | Q(nid__gt=10)) & Q(caption='root')db_constraint=True # 是否在數據庫中創建外鍵約束parent_link=False # 在Admin中是否顯示關聯數據 OneToOneField(ForeignKey)to, # 要進行關聯的表名to_field=None # 要關聯的表中的字段名稱on_delete=None, # 當刪除關聯表中的數據時,當前表與其關聯的行的行為###### 對于一對一 ####### 1. 一對一其實就是 一對多 + 唯一索引# 2.當兩個類之間有繼承關系時,默認會創建一個一對一字段# 如下會在A表中額外增加一個c_ptr_id列且唯一:class C(models.Model):nid = models.AutoField(primary_key=True)part = models.CharField(max_length=12)class A(C):id = models.AutoField(primary_key=True)code = models.CharField(max_length=1)ManyToManyField(RelatedField)to, # 要進行關聯的表名related_name=None, # 反向操作時,使用的字段名,用于代替 【表名_set】 如: obj.表名_set.all()related_query_name=None, # 反向操作時,使用的連接前綴,用于替換【表名】 如: models.UserGroup.objects.filter(表名__字段名=1).values('表名__字段名')limit_choices_to=None, # 在Admin或ModelForm中顯示關聯數據時,提供的條件:# 如:- limit_choices_to={'nid__gt': 5}- limit_choices_to=lambda : {'nid__gt': 5}from django.db.models import Q- limit_choices_to=Q(nid__gt=10)- limit_choices_to=Q(nid=8) | Q(nid__gt=10)- limit_choices_to=lambda : Q(Q(nid=8) | Q(nid__gt=10)) & Q(caption='root')symmetrical=None, # 僅用于多對多自關聯時,symmetrical用于指定內部是否創建反向操作的字段# 做如下操作時,不同的symmetrical會有不同的可選字段 models.BB.objects.filter(...)# 可選字段有:code, id, m1class BB(models.Model):code = models.CharField(max_length=12)m1 = models.ManyToManyField('self',symmetrical=True)# 可選字段有: bb, code, id, m1class BB(models.Model):code = models.CharField(max_length=12)m1 = models.ManyToManyField('self',symmetrical=False)through=None, # 自定義第三張表時,使用字段用于指定關系表through_fields=None, # 自定義第三張表時,使用字段用于指定關系表中那些字段做多對多關系表from django.db import modelsclass Person(models.Model):name = models.CharField(max_length=50)class Group(models.Model):name = models.CharField(max_length=128)members = models.ManyToManyField(Person,through='Membership',through_fields=('group', 'person'),)class Membership(models.Model):group = models.ForeignKey(Group, on_delete=models.CASCADE)person = models.ForeignKey(Person, on_delete=models.CASCADE)inviter = models.ForeignKey(Person,on_delete=models.CASCADE,related_name="membership_invites",)invite_reason = models.CharField(max_length=64)db_constraint=True, # 是否在數據庫中創建外鍵約束db_table=None, # 默認創建第三張表時,數據庫中表的名稱 多表關系和參數

ORM操作

基本操作

# models.Tb1.objects.create(c1='xx', c2='oo') # 增加一條數據,可以接受字典類型數據 **kwargs obj = models.Tb1(c1='xx', c2='oo') obj.save()# models.Tb1.objects.get(id=123) # 獲取單條數據,不存在則報錯(不建議) models.Tb1.objects.all() # 獲取全部 models.Tb1.objects.filter(name='seven') # 獲取指定條件的數據 models.Tb1.objects.exclude(name='seven') # 去除指定條件的數據# # models.Tb1.objects.filter(name='seven').delete() # 刪除指定條件的數據# models.Tb1.objects.filter(name='seven').update(gender='0') # 將指定條件的數據更新,均支持 **kwargs obj = models.Tb1.objects.get(id=1) obj.c1 = '111' obj.save() # 修改單條數據

進階操作

# 獲取個數# # models.Tb1.objects.filter(name='seven').count()# 大于,小于# # models.Tb1.objects.filter(id__gt=1) # 獲取id大于1的值# models.Tb1.objects.filter(id__gte=1) # 獲取id大于等于1的值# models.Tb1.objects.filter(id__lt=10) # 獲取id小于10的值# models.Tb1.objects.filter(id__lte=10) # 獲取id小于10的值# models.Tb1.objects.filter(id__lt=10, id__gt=1) # 獲取id大于1 且 小于10的值# in# # models.Tb1.objects.filter(id__in=[11, 22, 33]) # 獲取id等于11、22、33的數據# models.Tb1.objects.exclude(id__in=[11, 22, 33]) # not in# isnull# Entry.objects.filter(pub_date__isnull=True)# contains# # models.Tb1.objects.filter(name__contains="ven")# models.Tb1.objects.filter(name__icontains="ven") # icontains大小寫不敏感# models.Tb1.objects.exclude(name__icontains="ven")# range# # models.Tb1.objects.filter(id__range=[1, 2]) # 范圍bettwen and# 其他類似# # startswith,istartswith, endswith, iendswith,# order by# # models.Tb1.objects.filter(name='seven').order_by('id') # asc# models.Tb1.objects.filter(name='seven').order_by('-id') # desc# group by# # from django.db.models import Count, Min, Max, Sum# models.Tb1.objects.filter(c1=1).values('id').annotate(c=Count('num'))# SELECT "app01_tb1"."id", COUNT("app01_tb1"."num") AS "c" FROM "app01_tb1" WHERE "app01_tb1"."c1" = 1 GROUP BY "app01_tb1"."id"# limit 、offset# # models.Tb1.objects.all()[10:20]# regex正則匹配,iregex 不區分大小寫# # Entry.objects.get(title__regex=r'^(An?|The) +')# Entry.objects.get(title__iregex=r'^(an?|the) +')# date# # Entry.objects.filter(pub_date__date=datetime.date(2005, 1, 1))# Entry.objects.filter(pub_date__date__gt=datetime.date(2005, 1, 1))# year# # Entry.objects.filter(pub_date__year=2005)# Entry.objects.filter(pub_date__year__gte=2005)# month# # Entry.objects.filter(pub_date__month=12)# Entry.objects.filter(pub_date__month__gte=6)# day# # Entry.objects.filter(pub_date__day=3)# Entry.objects.filter(pub_date__day__gte=3)# week_day# # Entry.objects.filter(pub_date__week_day=2)# Entry.objects.filter(pub_date__week_day__gte=2)# hour# # Event.objects.filter(timestamp__hour=23)# Event.objects.filter(time__hour=5)# Event.objects.filter(timestamp__hour__gte=12)# minute# # Event.objects.filter(timestamp__minute=29)# Event.objects.filter(time__minute=46)# Event.objects.filter(timestamp__minute__gte=29)# second# # Event.objects.filter(timestamp__second=31)# Event.objects.filter(time__second=2)# Event.objects.filter(timestamp__second__gte=31) 進階操作

高級操作

# extra # 在QuerySet的基礎上繼續執行子語句 # extra(self, select=None, where=None, params=None, tables=None, order_by=None, select_params=None)# select和select_params是一組,where和params是一組,tables用來設置from哪個表 # Entry.objects.extra(select={'new_id': "select col from sometable where othercol > %s"}, select_params=(1,)) # Entry.objects.extra(where=['headline=%s'], params=['Lennon']) # Entry.objects.extra(where=["foo='a' OR bar = 'a'", "baz = 'a'"]) # Entry.objects.extra(select={'new_id': "select id from tb where id > %s"}, select_params=(1,), order_by=['-nid']) 舉個例子: models.UserInfo.objects.extra(select={'newid':'select count(1) from app01_usertype where id>%s'},select_params=[1,],where = ['age>%s'],params=[18,],order_by=['-age'],tables=['app01_usertype'])"""select app01_userinfo.id,(select count(1) from app01_usertype where id>1) as newidfrom app01_userinfo,app01_usertypewhere app01_userinfo.age > 18order by app01_userinfo.age desc"""# 執行原生SQL # 更高靈活度的方式執行原生SQL語句 # from django.db import connection, connections # cursor = connection.cursor() # cursor = connections['default'].cursor() # cursor.execute("""SELECT * from auth_user where id = %s""", [1]) # row = cursor.fetchone() 高級操作

QuerySet相關方法

################################################################## # PUBLIC METHODS THAT ALTER ATTRIBUTES AND RETURN A NEW QUERYSET # ##################################################################def all(self)# 獲取所有的數據對象def filter(self, *args, **kwargs)# 條件查詢# 條件可以是:參數,字典,Qdef exclude(self, *args, **kwargs)# 條件查詢# 條件可以是:參數,字典,Qdef select_related(self, *fields)性能相關:表之間進行join連表操作,一次性獲取關聯的數據。總結:1. select_related主要針一對一和多對一關系進行優化。2. select_related使用SQL的JOIN語句進行優化,通過減少SQL查詢的次數來進行優化、提高性能。def prefetch_related(self, *lookups)性能相關:多表連表操作時速度會慢,使用其執行多次SQL查詢在Python代碼中實現連表操作。總結:1. 對于多對多字段(ManyToManyField)和一對多字段,可以使用prefetch_related()來進行優化。2. prefetch_related()的優化方式是分別查詢每個表,然后用Python處理他們之間的關系。def annotate(self, *args, **kwargs)# 用于實現聚合group by查詢from django.db.models import Count, Avg, Max, Min, Sumv = models.UserInfo.objects.values('u_id').annotate(uid=Count('u_id'))# SELECT u_id, COUNT(ui) AS `uid` FROM UserInfo GROUP BY u_id v = models.UserInfo.objects.values('u_id').annotate(uid=Count('u_id')).filter(uid__gt=1)# SELECT u_id, COUNT(ui_id) AS `uid` FROM UserInfo GROUP BY u_id having count(u_id) > 1 v = models.UserInfo.objects.values('u_id').annotate(uid=Count('u_id',distinct=True)).filter(uid__gt=1)# SELECT u_id, COUNT( DISTINCT ui_id) AS `uid` FROM UserInfo GROUP BY u_id having count(u_id) > 1def distinct(self, *field_names)# 用于distinct去重models.UserInfo.objects.values('nid').distinct()# select distinct nid from userinfo 注:只有在PostgreSQL中才能使用distinct進行去重def order_by(self, *field_names)# 用于排序models.UserInfo.objects.all().order_by('-id','age')def extra(self, select=None, where=None, params=None, tables=None, order_by=None, select_params=None)# 構造額外的查詢條件或者映射,如:子查詢 Entry.objects.extra(select={'new_id': "select col from sometable where othercol > %s"}, select_params=(1,))Entry.objects.extra(where=['headline=%s'], params=['Lennon'])Entry.objects.extra(where=["foo='a' OR bar = 'a'", "baz = 'a'"])Entry.objects.extra(select={'new_id': "select id from tb where id > %s"}, select_params=(1,), order_by=['-nid'])def reverse(self):# 倒序models.UserInfo.objects.all().order_by('-nid').reverse()# 注:如果存在order_by,reverse則是倒序,如果多個排序則一一倒序def defer(self, *fields):models.UserInfo.objects.defer('username','id')或models.UserInfo.objects.filter(...).defer('username','id')#映射中排除某列數據def only(self, *fields):#僅取某個表中的數據models.UserInfo.objects.only('username','id')或models.UserInfo.objects.filter(...).only('username','id')def using(self, alias):指定使用的數據庫,參數為別名(setting中的設置)################################################## # PUBLIC METHODS THAT RETURN A QUERYSET SUBCLASS # ##################################################def raw(self, raw_query, params=None, translations=None, using=None):# 執行原生SQLmodels.UserInfo.objects.raw('select * from userinfo')# 如果SQL是其他表時,必須將名字設置為當前UserInfo對象的主鍵列名models.UserInfo.objects.raw('select id as nid from 其他表')# 為原生SQL設置參數models.UserInfo.objects.raw('select id as nid from userinfo where nid>%s', params=[12,])# 將獲取的到列名轉換為指定列名name_map = {'first': 'first_name', 'last': 'last_name', 'bd': 'birth_date', 'pk': 'id'}Person.objects.raw('SELECT * FROM some_other_table', translations=name_map)# 指定數據庫models.UserInfo.objects.raw('select * from userinfo', using="default")################### 原生SQL ###################from django.db import connection, connectionscursor = connection.cursor() # cursor = connections['default'].cursor()cursor.execute("""SELECT * from auth_user where id = %s""", [1])row = cursor.fetchone() # fetchall()/fetchmany(..)def values(self, *fields):# 獲取每行數據為字典格式def values_list(self, *fields, **kwargs):# 獲取每行數據為元祖def dates(self, field_name, kind, order='ASC'):# 根據時間進行某一部分進行去重查找并截取指定內容# kind只能是:"year"(年), "month"(年-月), "day"(年-月-日)# order只能是:"ASC" "DESC"# 并獲取轉換后的時間- year : 年-01-01- month: 年-月-01- day : 年-月-日models.DatePlus.objects.dates('ctime','day','DESC')def datetimes(self, field_name, kind, order='ASC', tzinfo=None):# 根據時間進行某一部分進行去重查找并截取指定內容,將時間轉換為指定時區時間# kind只能是 "year", "month", "day", "hour", "minute", "second"# order只能是:"ASC" "DESC"# tzinfo時區對象models.DDD.objects.datetimes('ctime','hour',tzinfo=pytz.UTC)models.DDD.objects.datetimes('ctime','hour',tzinfo=pytz.timezone('Asia/Shanghai'))"""pip3 install pytzimport pytzpytz.all_timezonespytz.timezone(‘Asia/Shanghai’)"""def none(self):# 空QuerySet對象#################################### # METHODS THAT DO DATABASE QUERIES # ####################################def aggregate(self, *args, **kwargs):# 聚合函數,獲取字典類型聚合結果from django.db.models import Count, Avg, Max, Min, Sumresult = models.UserInfo.objects.aggregate(k=Count('u_id', distinct=True), n=Count('nid'))===> {'k': 3, 'n': 4}def count(self):# 獲取個數def get(self, *args, **kwargs):# 獲取單個對象def create(self, **kwargs):# 創建對象def bulk_create(self, objs, batch_size=None):# 批量插入# batch_size表示一次插入的個數objs = [models.DDD(name='r11'),models.DDD(name='r22')]models.DDD.objects.bulk_create(objs, 10)def get_or_create(self, defaults=None, **kwargs):# 如果存在,則獲取,否則,創建# defaults 指定創建時,其他字段的值obj, created = models.UserInfo.objects.get_or_create(username='root1', defaults={'email': '1111111','u_id': 2, 't_id': 2})def update_or_create(self, defaults=None, **kwargs):# 如果存在,則更新,否則,創建# defaults 指定創建時或更新時的其他字段obj, created = models.UserInfo.objects.update_or_create(username='root1', defaults={'email': '1111111','u_id': 2, 't_id': 1})def first(self):# 獲取第一個def last(self):# 獲取最后一個def in_bulk(self, id_list=None):# 根據主鍵ID進行查找id_list = [11,21,31]models.DDD.objects.in_bulk(id_list)def delete(self):# 刪除def update(self, **kwargs):# 更新def exists(self):# 是否有結果 其他操作 QuerySet方法大全

?

轉載于:https://www.cnblogs.com/xubohua/p/8651959.html

總結

以上是生活随笔為你收集整理的Django之ORM的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产 一区二区三区 在线 | 免费观看成人 | 夜夜摸夜夜爽 | 在线看片a| 久久久五月天 | 欧美综合干 | 永久免费的啪啪网站免费观看浪潮 | 免费观看黄 | 91麻豆精品91久久久久同性 | 亚洲一级黄色大片 | 国产九色视频在线观看 | 99热99re6国产在线播放 | 欧美黄色免费 | 国产69精品久久99不卡的观看体验 | 天天操天天干天天干 | 丁香伊人网 | 草莓视频在线观看免费观看 | 日批视频在线观看免费 | 2022中文字幕在线观看 | 国产精品1区2区3区在线观看 | 99精品小视频 | 亚洲精品玖玖玖av在线看 | 日本久久久久久久久久久 | 免费网址你懂的 | 久久精品久久久久久久 | 成年美女黄网站色大片免费看 | 91麻豆国产 | 男女啪啪免费网站 | 婷婷国产在线 | 免费能看的av | 91资源在线免费观看 | www激情久久 | 91女神的呻吟细腰翘臀美女 | 国产一区二区精品在线 | 久久网址 | 久草在线观看 | 久久精品99久久久久久2456 | 国产日产亚洲精华av | 国产91精品在线播放 | 98超碰人人| 精品视频久久久久久 | 成人av资源| 18久久久久| 久久综合色婷婷 | 99久热在线精品视频观看 | av在线免费在线 | av免费网页 | 国产97在线观看 | 九九热国产视频 | 天天干国产| 日韩特黄av| 99精品偷拍视频一区二区三区 | 久久久精品国产一区二区电影四季 | 久久av在线播放 | www.天天成人国产电影 | 欧美日韩精品影院 | 91av在线看 | 亚洲一区二区三区四区在线视频 | 天天操天天干天天玩 | 欧美有色 | 在线成人欧美 | 国产一区二区在线精品 | 亚洲精品字幕在线观看 | 欧美人体xx | 久久综合九色综合久99 | 一区二区三区四区不卡 | 成人教育av | 日韩视频免费观看高清完整版在线 | 久保带人 | 成年人毛片在线观看 | 国产高清在线a视频大全 | 日日操日日操 | 探花视频在线观看免费版 | 国产五月婷| 99热这里只有精品久久 | 成年人免费电影在线观看 | 亚洲第一中文网 | 亚洲国产99| 欧美老人xxxx18 | 九色在线视频 | 99在线免费观看视频 | 91亚洲精品乱码久久久久久蜜桃 | 成人av av在线 | 欧美日韩在线视频观看 | 97国产大学生情侣酒店的特点 | 日本一区二区免费在线观看 | 四虎成人网 | 人人草人 | 极品久久久久久久 | 国产精品黄色av | 国产a视频免费观看 | 色视频成人在线观看免 | 在线观看韩国av | 欧美日韩国产一二三区 | 综合网天天 | 黄色国产大片 | 亚洲国产日韩一区 | 九九精品毛片 | 色中色综合 | 国产精品手机在线观看 | 婷婷国产一区二区三区 | 欧美a级在线播放 | 日韩在线观看中文字幕 | 久草精品视频在线看网站免费 | 国产区精品 | 一区二区三区在线不卡 | 久久精品一二三区 | 四虎永久免费在线观看 | 久久久91精品国产 | 在线欧美最极品的av | 五月婷婷色播 | www.五月天婷婷.com | 国产高清在线免费观看 | 久久国产精品第一页 | 日韩av免费大片 | 2019中文最近的2019中文在线 | 99久高清在线观看视频99精品热在线观看视频 | 中文字幕之中文字幕 | 欧美色一色 | 日韩成人免费在线观看 | 久久久首页 | 狠狠色噜噜狠狠狠狠2021天天 | 综合久色| 嫩嫩影院理论片 | 国产高清专区 | 人人爱在线视频 | 最新av网址在线观看 | 99精品久久只有精品 | 亚洲v欧美v国产v在线观看 | 1区2区3区在线观看 三级动图 | 夜夜躁日日躁狠狠躁 | 成人免费色 | 手机成人在线 | 日本爱爱免费视频 | 97在线观看视频国产 | 91av免费观看 | 一区二区欧美在线观看 | 青青河边草观看完整版高清 | 亚洲精品人人 | 人人干人人干人人干 | 国产手机在线视频 | 99综合视频 | 天天干天天操天天干 | a天堂最新版中文在线地址 久久99久久精品国产 | 久久久天天操 | 久久久国产精品成人免费 | 狠狠干夜夜 | 日韩久久精品一区二区 | av中文资源在线 | 色婷婷综合久色 | 天天操天天玩 | 五月婷在线观看 | 永久中文字幕 | 久久久久久久网站 | 在线看国产 | 亚洲亚洲精品在线观看 | 日韩最新在线视频 | 狠狠狠狠狠狠干 | 91黄色在线观看 | 91视频在线看| 992tv在线成人免费观看 | 91在线产啪| 激情久久小说 | 草久热| 日韩欧美高清视频在线观看 | 99在线免费视频 | 婷婷激情小说网 | 激情欧美一区二区三区免费看 | 亚洲资源片 | 成人av亚洲| 福利视频一区二区 | 91亚色在线观看 | 粉嫩一区二区三区粉嫩91 | 成年人在线观看网站 | 欧美日韩三级 | 久久综合免费 | 中文字幕免费高清在线观看 | 亚洲国产精品va在线看黑人动漫 | 欧美一区二区日韩一区二区 | 园产精品久久久久久久7电影 | 中文字幕一区二区在线观看 | 国产精品福利一区 | 国产精品一区二区三区久久 | 久久免费成人精品视频 | 日日碰夜夜爽 | 制服丝袜成人在线 | 天天射天天干天天 | 国产成人在线一区 | 27xxoo无遮挡动态视频 | 日本精品一区二区三区在线播放视频 | 久久在线免费观看视频 | 日韩精品中文字幕在线 | 久久香蕉电影网 | 综合婷婷 | 亚洲九九九在线观看 | 黄污视频网站 | av中文字幕亚洲 | 九九热免费在线视频 | 亚洲精品xx| av在线免费观看网站 | 婷婷在线视频观看 | 成人午夜电影网站 | www.香蕉视频在线观看 | 在线电影91 | 在线看片a| 免费在线观看av的网站 | 国产精品美女久久久久久2018 | 免费看一及片 | 一级黄色av | 在线看成人 | 亚洲美女免费视频 | 午夜视频一区二区 | 狠狠操电影网 | 西西444www大胆高清视频 | 久久亚洲综合国产精品99麻豆的功能介绍 | 国产精品久久久久久久久费观看 | 久久9999久久免费精品国产 | 97超碰精品 | 看av在线 | 人人澡人人澡人人 | 视频在线观看日韩 | 天天操天天射天天 | 日日麻批40分钟视频免费观看 | 亚洲黄a| 国产午夜精品免费一区二区三区视频 | 四虎国产永久在线精品 | 亚洲成人精品在线 | 韩国精品一区二区三区六区色诱 | 香蕉久久久久久av成人 | 韩日精品中文字幕 | 久久久久免费精品 | 韩国在线一区二区 | 五月在线视频 | 中文字幕在线看视频国产 | 国产精品福利在线 | 九九视频免费在线观看 | 国产亚洲精品美女久久 | 国产精品久久久久久久久久久免费看 | 欧美一级电影 | 涩涩网站在线播放 | 91精品在线免费视频 | 国产午夜精品免费一区二区三区视频 | 国产在线精品一区二区不卡了 | 午夜久久久久久久久久影院 | 中文字幕在线视频一区二区 | 欧美亚洲成人xxx | 亚洲首页 | 亚洲欧洲日韩 | 色噜噜日韩精品一区二区三区视频 | 久久日韩精品 | 国产一区二区三区 在线 | 日韩av在线小说 | 在线观看成人小视频 | www.成人精品 | 美女视频黄免费的久久 | 色视频在线免费观看 | 超碰97在线资源 | 精品国产电影一区 | 国产在线精品播放 | 最新av中文字幕 | 黄色三级网站 | 操操操日日日 | 999久久国产 | 久久精品一区二区三区国产主播 | 美女网站色免费 | 91精品久久久久久综合乱菊 | 欧美精品视 | 久久深夜福利免费观看 | 国产精品久久久免费 | 国产精品a成v人在线播放 | 黄色片视频免费 | 天天操人人干 | 99热这里只有精品久久 | 91禁在线观看| 96久久久| 免费中文字幕视频 | 黄色高清视频在线观看 | 国产精品男女 | 中文字幕影视 | 欧美精品久久久久久久久久白贞 | 久久精品中文字幕一区二区三区 | 久久久久一区二区三区 | 深爱五月激情五月 | 99久久精品久久久久久清纯 | 天天爱天天插 | 视频福利在线观看 | 欧美一区免费观看 | 免费网站在线观看成人 | 精品国产一区二区在线 | 精品国产中文字幕 | 色综合五月 | 欧美一二三区在线观看 | 99久热在线精品视频观看 | 久久午夜色播影院免费高清 | 国产精品久久久久久久久软件 | 99色视频在线 | 欧美一二三视频 | 精品亚洲免费 | 久久新 | 91精品电影 | 中文字幕观看av | 成人av免费 | 波多野结依在线观看 | 久久国产网| 欧美精品国产综合久久 | 免费观看不卡av | 久久理论片 | 国产精品爽爽久久久久久蜜臀 | 99riav1国产精品视频 | 五月丁色 | 亚洲一级片在线观看 | 精品美女久久久久久免费 | 国产精品久久久久久久av电影 | 97国产情侣爱久久免费观看 | 日韩乱码中文字幕 | 在线成人免费 | 久热av在线 | 国产精品99在线播放 | 久久久久免费精品国产小说色大师 | 狠狠的日日 | 国产成人一区二区三区在线观看 | 婷婷丁香导航 | 97超碰人人在线 | av超碰在线| 欧洲亚洲精品 | 久久久久国产成人精品亚洲午夜 | 99国产精品久久久久久久久久 | 91香蕉国产在线观看软件 | 中中文字幕av | 成人wwwxxx视频 | 狠狠干天天射 | 日本精a在线观看 | 国产亚洲精品女人久久久久久 | 免费在线观看a v | 亚洲第一av在线播放 | 婷婷电影在线观看 | 久草网视频 | 免费看的黄色的网站 | 欧美午夜久久 | 日韩免费视频一区二区 | 亚洲精品久久激情国产片 | 婷婷丁香久久五月婷婷 | 亚洲深爱激情 | 婷婷久久一区 | 99精品视频在线观看 | 91九色视频观看 | 国产在线观看免费观看 | 在线观看91网站 | 日韩超碰在线 | 亚洲成人软件 | 国产一区二区在线看 | 精品国产视频在线观看 | 国产男女无遮挡猛进猛出在线观看 | 国产福利av | 三上悠亚一区二区在线观看 | 99亚洲精品在线 | 九九热免费在线观看 | 色综合天天狠狠 | 四虎永久免费网站 | 欧美国产日韩一区二区 | 日本精品久久久久中文字幕 | 亚洲视频综合在线 | 成人国产精品一区 | 444av| 久久久久久久久久福利 | 亚洲,国产成人av | 中文字幕精品视频 | 日本精品一区二区三区在线观看 | 久久久久国| 亚洲一级片在线观看 | 欧美日韩中文另类 | 深夜福利视频在线观看 | 最近中文字幕完整高清 | 91色一区二区三区 | 成人高清在线 | 日本一区二区三区免费看 | 2000xxx影视| 中文字幕人成不卡一区 | 国产日本三级 | 在线色亚洲 | 久久久久久久久久久久99 | 午夜美女福利 | 亚洲视频一级 | 粉嫩av一区二区三区四区在线观看 | 免费日韩| 在线观看黄色大片 | 96精品高清视频在线观看软件特色 | 国产美女视频 | 国产一区二区精品久久91 | 91精品啪在线观看国产81旧版 | 国内亚洲精品 | 一区二区三区在线不卡 | 亚洲免费av在线 | 国产成年人av| 美女网站在线播放 | 中文字幕在线久一本久 | 国产三级国产精品国产专区50 | 亚洲国产成人av网 | 国产精品video | 免费色网| 日本韩国精品一区二区在线观看 | 日韩一区二区三区不卡 | 国内精品久久久久久久97牛牛 | 婷婷色资源 | 免费网站在线观看成人 | 亚州av免费 | 91免费观看视频网站 | 日韩精品免费一区二区在线观看 | 九九久久精品视频 | 久久网站免费 | 99九九视频| 成人黄色一级视频 | 日韩高清不卡一区二区三区 | 不卡av在线| 天天摸日日操 | 成人影视免费 | 天天操天天玩 | 在线观看aaa| 奇米影视四色8888 | 天天操天天干天天综合网 | 欧美日韩aa| 国产99一区二区 | 国内精品久久久久影院优 | av爱干| 日韩偷拍精品 | 黄免费网站 | 色婷婷视频 | 免费看一级一片 | 亚洲最新av | 伊人成人激情 | 国产不卡在线观看 | 激情视频91| 超碰人人国产 | 激情婷婷在线观看 | 最近日本mv字幕免费观看 | 国产不卡免费av | 狠狠操操 | 国产一区二区免费在线观看 | 国产精品免费久久久久影院仙踪林 | 中文字幕中文字幕中文字幕 | 黄色aaa级片 | 日韩欧美在线免费 | 天天操天天摸天天干 | 久久国产视频网站 | 欧美日韩国产一二 | 高清有码中文字幕 | 欧美日韩性视频在线 | 毛片网站免费 | 日本中文乱码卡一卡二新区 | 久久久婷| 五月综合激情婷婷 | 欧美视频网址 | 日日碰夜夜爽 | 日本黄色免费大片 | 波多野结衣视频一区二区三区 | 欧美 激情在线 | 久久在线一区 | 91插插视频 | 亚洲网久久| 少妇搡bbbb搡bbb搡69 | 日韩中文字幕国产 | 激情av综合| 精品国产乱码久久久久久1区二区 | 日韩电影一区二区在线 | 日韩免费不卡av | 69av在线视频 | 久久成人在线视频 | 成人av日韩 | 色com网 | 国产最新91 | 亚洲午夜大片 | 黄色资源在线观看 | 久久免费视屏 | 成人亚洲综合 | 二区精品视频 | 97人人模人人爽人人喊中文字 | 国产成人三级在线 | 香蕉色综合 | 日韩av电影网站在线观看 | 91一区二区三区在线观看 | 免费视频一级片 | 最近中文字幕在线中文高清版 | 97在线精品国自产拍中文 | 九九99靖品 | 国产福利电影网址 | www178ccom视频在线 | 一区二区三区免费在线观看 | 久久91网| 日韩欧美视频在线播放 | 9草在线| 97成人超碰 | 99色国产 | 亚州国产精品视频 | 99久久久国产免费 | 久久免费看毛片 | 一区二区三区四区五区在线视频 | 青青久草在线 | 免费av片在线 | 91成人天堂久久成人 | av综合网址 | 日日爽视频| 久久再线视频 | 99精品乱码国产在线观看 | 伊甸园永久入口www 99热 精品在线 | 国产又粗又猛又黄又爽的视频 | 中文字幕国产在线 | 精品美女视频 | 免费91在线观看 | 激情五月综合 | 韩国av永久免费 | www.五月天激情 | 亚洲一级二级三级 | 日日日操操 | 午夜免费久久看 | 91在线最新 | 日韩小视频网站 | japanesexxxhd奶水 国产一区二区在线免费观看 | 人人干97 | 粉嫩av一区二区三区四区 | 丝袜美腿av | 丁香五婷| www.久艹| 久久国产欧美日韩精品 | 日韩av资源在线观看 | 国产福利a | 成人一区在线观看 | 国产99久久久久久免费看 | 99人久久精品视频最新地址 | 久久精品伊人 | www黄色av| 91av在线电影 | 黄色毛片视频 | 免费观看第二部31集 | 亚洲国产日韩一区 | 久久超碰99 | 91精品国产99久久久久久红楼 | 欧美日韩3p| 欧美精品久久久久久 | 国产一二三区av | 草久草久 | 99视频国产精品 | 99久久夜色精品国产亚洲96 | 久久精品屋 | 又黄又爽又色无遮挡免费 | 99精品色 | 欧美日韩免费视频 | 精品国产一区二区三区久久久久久 | 美女搞黄国产视频网站 | 中文字幕乱码亚洲精品一区 | 人人爽夜夜爽 | 亚洲少妇激情 | 欧美韩日视频 | 欧美在线视频一区二区三区 | 麻豆视频91 | 亚洲精品资源在线观看 | 五月天堂网 | 日本中文不卡 | 日韩手机在线观看 | 九九九电影免费看 | 成人毛片一区二区三区 | 在线视频欧美日韩 | 在线观看视频三级 | 午夜av剧场| 日韩精品一区电影 | 久久免费电影网 | 中文永久字幕 | 色综合久久五月天 | 91资源在线免费观看 | 深夜免费网站 | 五月亚洲婷婷 | 全久久久久久久久久久电影 | 黄色小说免费在线观看 | 日韩激情视频在线 | 日本在线观看中文字幕 | 96久久欧美麻豆网站 | 一区二区视频电影在线观看 | 欧美日韩电影在线播放 | 毛片a级片 | 日日操夜 | 久久久久日本精品一区二区三区 | 丁香电影小说免费视频观看 | 日日夜夜av | 日韩啪啪小视频 | 欧美日韩有码 | 一区二区三区高清不卡 | 天天爽夜夜爽精品视频婷婷 | 国产一区二区三区在线免费观看 | 一级精品视频在线观看宜春院 | 久久69av| 久久久久久中文字幕 | 不卡视频在线 | 国内精品久久久精品电影院 | 五月亚洲综合 | 丁香在线 | 日韩激情三级 | 91精品系列| 亚洲激情视频在线 | 婷婷网址 | 中文字幕资源站 | 免费高清看电视网站 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 国产亚洲精品成人av久久ww | 波多野结衣电影一区 | 玖玖色在线观看 | 亚洲第一伊人 | 成人一级片在线观看 | 精品美女在线视频 | 免费成人在线观看视频 | 欧美一区二区三区免费观看 | 欧美综合久久久 | 日韩影视在线观看 | 97av在线| 亚洲成a人片在线www | 福利一区二区 | 国产精品二区在线观看 | 青青草国产成人99久久 | 天天干天天天天 | 国产精品久久久久av免费 | 中文字幕123区 | 香蕉视频免费看 | 国产精品手机在线 | 天天玩夜夜操 | 激情网在线视频 | 五月天婷亚洲天综合网精品偷 | 天天干天天操天天干 | 99久久精品费精品 | 亚洲欧美日韩精品久久奇米一区 | 久久污视频| av大全在线播放 | 91精品视屏 | 爱情影院aqdy鲁丝片二区 | 三上悠亚一区二区在线观看 | 日韩免费电影在线观看 | 久久久久久久久久久久久久免费看 | 免费在线观看黄网站 | 国产视频在线观看一区 | 欧美日本三级 | 国产午夜精品一区二区三区在线观看 | 麻豆免费视频观看 | 黄色三级网站在线观看 | 91网在线 | 欧美国产日韩久久 | 国产精品18久久久久久不卡孕妇 | 日韩av看片 | 日韩在线视频网站 | 一区二区三区观看 | 国产精品一区一区三区 | 999久久久久久久久 69av视频在线观看 | 91精品在线麻豆 | 99一区二区三区 | 国产精品自在线 | 草久久久久久久 | 国语对白少妇爽91 | 九九视频在线观看视频6 | 久久久穴| 婷婷丁香激情五月 | 免费观看黄色av | 91干干干 | 999精品 | 国产成人精品在线观看 | 97色在线观看免费视频 | 国产91亚洲 | 四虎成人精品永久免费av九九 | 九九热在线视频 | 天天草天天色 | 国产又粗又猛又爽又黄的视频先 | 国产精品久久久久久69 | 国产精品自产拍在线观看蜜 | 91丨九色丨蝌蚪丰满 | 国产三级国产精品国产专区50 | 成人在线网站观看 | 超碰97公开 | 日韩不卡高清视频 | 日日日视频 | 三级av免费| 人人干人人艹 | 亚欧日韩av | 91精品色 | 亚洲不卡在线 | 成年人网站免费在线观看 | 色五月成人 | 成人高清在线观看 | 一本色道久久综合亚洲二区三区 | 高潮久久久久久 | 成人在线播放视频 | 三级在线播放视频 | 国产日韩精品一区二区三区在线 | 日日夜夜天天久久 | 美女视频a美女大全免费下载蜜臀 | 久久黄色免费视频 | 麻豆一级视频 | 99热在线免费观看 | 7777精品伊人久久久大香线蕉 | 亚洲天堂视频在线 | 久久大片网站 | 狠狠网亚洲精品 | 精品国产理论 | 韩国视频一区二区三区 | 久久男人中文字幕资源站 | 国产99久久精品一区二区永久免费 | 五月综合激情婷婷 | 国内精品久久久久久久影视麻豆 | 天天干com | av免费片 | 久久久亚洲网站 | 久草在线手机观看 | 国产精品精品久久久久久 | 国产日韩精品在线观看 | 久久精品视频免费观看 | 久久区二区 | 日韩有码专区 | 深爱激情站 | 日韩一级网站 | 超碰在线天天 | 香蕉看片 | 日韩av有码在线 | 日韩欧美视频免费在线观看 | 亚洲成av人片一区二区梦乃 | 中文字幕一区二区三区在线视频 | 韩国一区二区在线观看 | 国内外成人免费在线视频 | 久久影院一区 | 国产视频手机在线 | 日韩免费看片 | 亚洲精品美女久久17c | 在线观看岛国片 | a黄色影院 | 在线视频亚洲 | av免费在线免费观看 | 亚洲精品免费在线观看视频 | 成片视频免费观看 | 日韩美女久久 | 麻豆va一区二区三区久久浪 | 手机色在线 | 色噜噜狠狠色综合中国 | 午夜手机电影 | 国产精品久久久久久久久久久久午夜 | 婷婷亚洲综合五月天小说 | 久久久久成人精品亚洲国产 | 亚洲国产精品一区二区久久,亚洲午夜 | 啪啪免费试看 | 亚洲精品免费在线观看视频 | 国产精品免费视频一区二区 | 热久久这里只有精品 | 在线日韩亚洲 | 日韩国产欧美在线视频 | 九九九热精品免费视频观看网站 | 久久综合婷婷综合 | 欧美网址在线观看 | 国产资源在线免费观看 | 黄色大全免费观看 | 91桃色在线播放 | 欧美成人猛片 | 日韩色在线 | 成人福利在线观看 | 久久精品爱视频 | 欧美日韩国产二区 | 色综合久久久久网 | 国内视频1区 | 91免费版在线观看 | 久久国产色 | 久久久久网址 | 99精品欧美一区二区三区 | 中文字幕av最新更新 | 国产精品美女久久久久久久久久久 | 久久久久久久久久久成人 | 黄色一级免费 | 国产成人一区二区三区在线观看 | 日本aa在线| 精品一区二区久久久久久久网站 | 久久精品一区二区 | 久草在线免费在线观看 | 午夜精品一区二区国产 | 97干com| 国产97av | 免费影视大全推荐 | 国产成人精品久久久久 | 国产裸体bbb视频 | 美女视频一区二区 | 欧美激情综合五月 | 99re国产 | 亚洲综合色视频在线观看 | 国产午夜精品久久 | 88av视频 | 国产午夜三级一区二区三 | 91在线91| 91污视频在线 | 亚洲视频专区在线 | 日韩免费在线看 | 国产aa精品 | 国产二区电影 | 在线不卡的av | 国产你懂的在线 | 精品视频免费看 | 久久99精品视频 | 成人av影视在线 | 久视频在线 | 亚洲精品视频在线免费播放 | 国产成人资源 | 狠色在线 | av中文字幕网 | 久久九九影视网 | 色姑娘综合 | 国产精品免费一区二区三区在线观看 | 精品一区二区三区在线播放 | 国产视频1 | 香蕉久草 | 欧美午夜性 | 国产精品不卡在线 | 日韩欧美大片免费观看 | 97在线观看视频免费 | 精品免费久久 | 97电影网手机版 | 91在线一区二区 | 国产精品久久久网站 | 亚洲一区视频在线播放 | 四虎永久精品在线 | 蜜臀一区二区三区精品免费视频 | 99视频这里只有 | 91九色在线观看 | 日韩美视频| 99久久精品日本一区二区免费 | 国产成人精品久久久久 | 欧美网站黄色 | 激情五月综合 | 青青久草在线 | 中文资源在线播放 | 国内视频在线 | 国产美女在线免费观看 | 亚洲va在线va天堂va偷拍 | 国产 欧美 日产久久 | 狠狠88综合久久久久综合网 | 黄色片亚洲 | 丁香五月网久久综合 | 中文字幕丰满人伦在线 | 精品毛片在线 | 色婷婷久久久综合中文字幕 | 亚洲国产精品电影在线观看 | 精品一区二区在线免费观看 | 久久成人高清视频 | 中文字幕在线视频第一页 | 久久国产精品影片 | 国产色婷婷精品综合在线手机播放 | 香蕉视频在线观看免费 | 亚洲丝袜中文 | 久久久久国产一区二区 | 国产视频1区2区3区 久久夜视频 | 丁香花中文在线免费观看 | 亚洲精品裸体 | 香蕉影院在线观看 | 色噜噜日韩精品一区二区三区视频 | 天天干亚洲 | 日韩欧美高清视频在线观看 | 五月亚洲| 日韩网站免费观看 | 日日婷婷夜日日天干 | 一区二区精品在线 | 亚洲精品视频www | 色视频 在线 | 亚洲成人一二三 | 久久精品国产一区二区 | 久久免费99 | 日韩精品视频久久 | 91成年人视频 | 中文字幕一区二区三 | 天天爽夜夜爽人人爽一区二区 | 六月激情婷婷 | 成年人看片网站 | 免费视频久久久久久久 | 天天插天天干 | 右手影院亚洲欧美 | 狠狠操狠狠干天天操 | av丝袜制服 | 在线观看免费黄色 | 免费国产黄线在线观看视频 | 在线观看久草 | 国产成人精品午夜在线播放 | 黄色免费在线看 | 久久激情视频免费观看 | 综合在线观看色 | 五月天堂网 | 国产亚洲精品久久久久动 | 日韩在线观看中文 | 亚洲国产人午在线一二区 | 99久久99久久 | 天天操天天操天天操天天操天天操天天操 | 国产精品破处视频 | 黄色aa久久| 热久久电影 | 久久久久女人精品毛片 | 亚洲男模gay裸体gay | 久久99亚洲精品久久久久 | 亚洲女欲精品久久久久久久18 | 黄色av一区二区三区 | 日韩av一区二区三区四区 | 九九久久久久久久久激情 | 99热最新地址 | 亚洲美女视频在线 | 999超碰| 色在线网站| 久久成人午夜视频 | av在线一 | 夜夜躁狠狠躁 | 人人草网站 | 日韩久久精品一区 | 久久在线免费观看 | 日韩中文字幕免费电影 | 日日夜夜精品免费视频 | 操操日| 五月婷婷电影网 | 91精品免费 | 毛片激情永久免费 | 久久免视频 | 久久久久久久久久久高潮一区二区 | 免费看国产一级片 | 中文字幕av影院 | 久久视频这里有久久精品视频11 | 天天干干 | 久久久久久久久免费 | 韩国一区视频 | 美女视频黄免费网站 | 1区2区视频| 五月婷婷操 | 欧美人交a欧美精品 | 视频在线一区 | 91久久国产自产拍夜夜嗨 | av三级在线看| 久久96国产精品久久99漫画 | 美女精品 | 色综合久久精品 | 欧美激情片在线观看 | 亚洲精品中文字幕视频 | 日日干网址 | 九九久久精品视频 | 国产一区二区免费在线观看 | 丁香六月中文字幕 | 国产主播大尺度精品福利免费 | 国产一卡久久电影永久 | 久久久久免费精品国产 | 国产小视频在线免费观看 | 亚洲专区视频在线观看 | 在线中文字幕观看 | 在线91观看 | 久久69av| 九九av| 久久成人久久 | 2019中文字幕网站 | 日韩字幕在线观看 | 国产精品ⅴa有声小说 | 国产麻豆果冻传媒在线观看 | 日韩免费av网址 | 午夜91在线 | av观看久久久 | 99国产精品一区 | 国产第一页在线观看 | 亚州激情视频 | 欧美日韩在线视频一区 | a视频免费看 | 狠狠网 | 97看片吧 | 五月综合激情婷婷 | 成人一区在线观看 | 欧美激情另类 | 在线观看一区 | 去看片| 久久一级片 | 国产一区二区高清不卡 | 久久人人爽人人爽人人片av免费 | 碰超在线| 国产精品久久久久久久99 | 久久综合之合合综合久久 | 免费观看成人网 | 蜜臀久久99精品久久久久久网站 | 黄色小说视频在线 | 国内精品久久久久影院日本资源 | 一本一本久久a久久精品综合妖精 | av免费电影在线观看 | 国产在线一区二区三区播放 | 中文在线 | 国产精品成人免费 | 免费又黄又爽的视频 | 亚洲国产大片 | 欧美在线aaa | 日本狠狠干 | 日日操狠狠干 | 成人免费在线观看av | 尤物97国产精品久久精品国产 | 中文字幕在线观看免费 | 黄色av电影一级片 | 又爽又黄又刺激的视频 | 国产精品视频免费观看 | 91.dizhi永久地址最新 | 日本夜夜草视频网站 | 国产黄视频在线观看 | 久久久受www免费人成 | 亚洲精品免费在线观看 | 在线视频 你懂得 | av在线8|