1. 程式人生 > >django之單表操作

django之單表操作

1.查詢方法:

<1> all(): 查詢所有結果 <2> filter(**kwargs): 它包含了與所給篩選條件相匹配的物件 <3> get(**kwargs): 返回與所給篩選條件相匹配的物件,返回結果有且只有一個,如果符合篩選條件的物件超過一個或者沒有都會丟擲錯誤。 <4> exclude(**kwargs): 它包含了與所給篩選條件不匹配的物件 <5> order_by(*field): 對查詢結果排序('-id')
<6> reverse(): 對查詢結果反向排序 <8> count(): 返回資料庫中匹配查詢(QuerySet)的物件數量。 <9> first(): 返回第一條記錄 <10> last(): 返回最後一條記錄 <11> exists(): 如果QuerySet包含資料,就返回True,否則返回False <12> values(*field): 返回一個ValueQuerySet——一個特殊的QuerySet,執行後得到的並不是一系列 model的例項化物件,而是一個可迭代的字典序列
<13> values_list(*field): 它與values()非常相似,它返回的是一個元組序列,values返回的是一個字典序列 <14> distinct(): 從返回結果中剔除重複紀錄

2.雙下劃綫之模糊查詢:

<1> all():                  查詢所有結果
  
<2> filter(**kwargs):       它包含了與所給篩選條件相匹配的物件
  
<3> get(**kwargs):          返回與所給篩選條件相匹配的物件,返回結果有且只有一個,如果符合篩選條件的物件超過一個或者沒有都會丟擲錯誤。
  
<4> exclude(**kwargs):      它包含了與所給篩選條件不匹配的物件
 
<5> order_by(*field):       對查詢結果排序('-id')
  
<6> reverse():              對查詢結果反向排序
  
<8> count():                返回資料庫中匹配查詢(QuerySet)的物件數量。
  
<9> first():                返回第一條記錄
  
<10> last():                返回最後一條記錄
  
<11> exists():              如果QuerySet包含資料,就返回True,否則返回False
 
<12> values(*field):        返回一個ValueQuerySet——一個特殊的QuerySet,執行後得到的並不是一系列
                            model的例項化物件,而是一個可迭代的字典序列
<13> values_list(*field):   它與values()非常相似,它返回的是一個元組序列,values返回的是一個字典序列
 
<14> distinct():            從返回結果中剔除重複紀錄

單表查詢練習

import
os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE", "template_import.settings") import django django.setup() from template001 import models book = models.Book.objects.create(name='紅樓夢', price=23.8, publish='人民出版社', author='曹雪芹', create_data='2018-09-17') book = models.Book.objects.create(name='紅樓夢', price=23.8, publish='人民出版社', author='曹雪芹', create_data='2018-09-17') import datetime ctime = datetime.datetime.now() book = models.Book.objects.create(name='西遊記', price=100, publish='北京出版社', author='吳承恩', create_data=ctime) ret = models.Book.objects.all() print(ret) # # 1 # 查詢老男孩出版社出版過的價格大於200的書籍 book = models.Book.objects.filter(price__gt='200',publish='老男孩出版社') print(book) # 2 # 查詢2017年8月出版的所有以py開頭的書籍名稱 book = models.Book.objects.filter(name__startswith='py',create_data__range=['2018-08-01','2018-08-31']) print(book) # 3 # 查詢價格為50, 100 # 或者150的所有書籍名稱及其出版社名稱 book = models.Book.objects.filter(price__in=['50','100']) book2 = models.Book.objects.filter(price=150).values('name','price') print(book) print(book2) # 4 # 查詢價格在100到200之間的所有書籍名稱及其價格 book = models.Book.objects.filter(price__range=[100, 200]).values('name','price') print(book) # 5 # 查詢所有人民出版社出版的書籍的價格(從高到低排序,去重) book = models.Book.objects.filter(publish='人民出版社').order_by('-price') print(book) # 6 # 查詢所有書名裡包含樓的書 book = models.Book.objects.filter(name__contains='') print(book) # 7 # 查找出版日期是2017年的書 book = models.Book.objects.filter(create_data__year='2017') print(book) # 8 # 查找出版日期是2017年的書名 book = models.Book.objects.filter(create_data__year='2017').values('name') print(book) # 9 # 查找價格大於10元的書 print('-----------') book = models.Book.objects.filter(price__gt='10') print(book) # 10 # 查找價格大於10元的書名和價格 book = models.Book.objects.filter(price__gt='10').values('name','price') print(book)