亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

django 中QuerySet特性功能詳解

 更新時間:2019年07月25日 10:40:19   作者:谷子的  
這篇文章主要介紹了django 中QuerySet特性功能詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

Book表的數(shù)據(jù)顯示

id  title    price  publish_id
2  Linux    30     1
3  項塔蘭    45     2
4  追風箏的人  39.9   3
5  富爸爸    23    10

創(chuàng)建queryset 視圖 函數(shù), 可以使用的列表的方法,按索引,切片的方法取值,得到一個列表對象

def queryset(request):

  ret1 = Book.objects.all()[0]  #QuerySet支持索引,切片操作
  # print(ret1)   #linux 得到一個具體的對象
  ret2 = Book.objects.all()[1:3]
  # print(ret2)#<QuerySet [<Book: 項塔蘭>, <Book: 追風箏的人>]>
  # ret3 = Book.objects.all()[:2]
  ret4 = Book.objects.all()[::2]# 按步長取,隔一個取一個,,,[::1}挨著取,一個個都取
  # print(ret3)#<QuerySet [<Book: Linux>, <Book: 項塔蘭>]>

  print(ret4)#[<Book: Linux>, <Book: 追風箏的人>]

-----

可迭代特性, iterator() ,exists()

主要是QuerySet的緩存機制,如果一次從數(shù)據(jù)庫取出很多數(shù)據(jù),就有可能導致程序崩潰,可以利用iterator()方法,做性能優(yōu)化,

為了判斷獲取到的對象是否有值,沒有必要遍歷所有的對象,用exists()方法()

#可迭代特性

  book_list = Book.objects.all() #取出數(shù)據(jù)庫的所有對象,要考慮cache機制,如果數(shù)據(jù)量太大,程序就會崩潰

#判斷book_list 是否有值,假如有很多數(shù)據(jù),就沒有必要全部查一遍才得知有數(shù)據(jù),只要查到有1條數(shù)據(jù),就可以知道book_list有數(shù)據(jù),就用exists()方法

  if book_list.exists():
    print('ok')  #ok ,說明數(shù)據(jù)庫有值
 #利用itertor()方法 book_list1 = Book.objects.all().iterator() #這次就不能用2次for循環(huán),第一次for循環(huán),就已經(jīng)把遍歷完了,
  

book_list1 = Book.objects.all().iterator() #這次就不能用2次for循環(huán),第一次for循環(huán),就已經(jīng)把遍歷完了,用next()方法每次取出一個值,
print(next(book_list1)) #linux
print(next(book_list1))#項塔蘭
print(next(book_list1))#追風箏的人




  Book.objects.filter(id=2).update(price=100.00)#對數(shù)據(jù)庫數(shù)據(jù)進行更新,但并沒有執(zhí)行,只有在用到的時候在執(zhí)行

  for obj in book_list: # 在for循環(huán)時開始執(zhí)行sql語句查詢
    print(obj.title,obj.price)

    #如果for循環(huán)2次,打印2次結果,也是執(zhí)行一次sql語句,因為存在sql的緩存機制,把第一次查詢的結果放到緩存里,
    #下次從緩存里調
  """ 
  Linux  30.00  ---沒有更新數(shù)據(jù)之前
  項塔蘭  45.00
  追風箏的人  39.90
  富爸爸  23.00
  """

  """
  Linux 100.00  ----更新數(shù)據(jù)之后
  項塔蘭 45.00
  追風箏的人 39.90
  富爸爸 23.00
  """

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • python用字典統(tǒng)計單詞或漢字詞個數(shù)示例

    python用字典統(tǒng)計單詞或漢字詞個數(shù)示例

    這篇文章主要介紹了python用字典統(tǒng)計單詞或漢字詞個數(shù)示例,需要的朋友可以參考下
    2014-04-04
  • Pygame游戲開發(fā)之太空射擊實戰(zhàn)敵人精靈篇

    Pygame游戲開發(fā)之太空射擊實戰(zhàn)敵人精靈篇

    相信大多數(shù)8090后都玩過太空射擊游戲,在過去游戲不多的年代太空射擊自然屬于經(jīng)典好玩的一款了,今天我們來自己動手實現(xiàn)它,在編寫學習中回顧過往展望未來,下面開始講解敵人精靈的使用
    2022-08-08
  • 使用tensorflow實現(xiàn)矩陣分解方式

    使用tensorflow實現(xiàn)矩陣分解方式

    今天小編就為大家分享一篇使用tensorflow實現(xiàn)矩陣分解方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 詳解Pytorch+PyG實現(xiàn)GCN過程示例

    詳解Pytorch+PyG實現(xiàn)GCN過程示例

    這篇文章主要為大家介紹了Pytorch+PyG實現(xiàn)GCN過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • ?Python?匿名函數(shù)lambda?詳情

    ?Python?匿名函數(shù)lambda?詳情

    這篇文章主要介紹了?Python?匿名函數(shù)lambda,??lambda?????函數(shù)返回函數(shù)本身而不是將其賦值給一個變量名。所以它也被稱為匿名函數(shù),下文更多相關內容需要的小伙伴可以參考一下
    2022-03-03
  • 在linux系統(tǒng)下安裝python librtmp包的實現(xiàn)方法

    在linux系統(tǒng)下安裝python librtmp包的實現(xiàn)方法

    今天小編就為大家分享一篇在linux系統(tǒng)下安裝python librtmp包的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python3多線程知識點總結

    python3多線程知識點總結

    在本篇文章里小編給各位分享的是關于python3多線程的相關知識點內容,以后需要的朋友們可以參考下。
    2019-09-09
  • 對Python的Django框架中的項目進行單元測試的方法

    對Python的Django框架中的項目進行單元測試的方法

    這篇文章主要介紹了對Python的Django框架中的項目進行單元測試的方法,使用Django中的tests.py模塊可以輕松地檢測出一些常見錯誤,需要的朋友可以參考下
    2016-04-04
  • 基于Django框架的rest_framework的身份驗證和權限解析

    基于Django框架的rest_framework的身份驗證和權限解析

    Django 是一個基于 Python 的 Web 框架,可讓您快速創(chuàng)建高效的 Web 應用程序,這篇文章主要介紹了基于Django框架的rest_framework的身份驗證和權限解析,需要的朋友可以參考下
    2023-05-05
  • Python collections模塊實例講解

    Python collections模塊實例講解

    Python作為一個“內置電池”的編程語言,標準庫里面擁有非常多好用的模塊。比如今天想給大家 介紹的 collections 就是一個非常好的例子
    2014-04-04

最新評論