日韩精品欧美激情国产一区_中文无码精品一区二区三区在线_岛国毛片AV在线无码不卡_亞洲歐美日韓精品在線_使劲操好爽好粗视频在线播放_日韩一区欧美二区_八戒八戒网影院在线观看神马_亚洲怡红院在线色网_av无码不卡亚洲电影_国产麻豆媒体MDX

Django中g(shù)et和filter區(qū)別

時間:2022-05-18 16:14:22 類型:python
字號:    

  get和filter()的區(qū)別。

  1、get

  輸入?yún)?shù):get的參數(shù)只能是model中定義的哪些字段,只支持嚴(yán)格匹配。

  Entry.objects.get(id='foo') # raises Entry.DoesNotExist

  返回參數(shù):get 返回值是一個定義的model對象,只有一條記錄返回的時候才正常,也就說明get的查詢字段必須是主鍵或者唯一約束的字段。當(dāng)返回多條記錄或者是沒有找到記錄的時候都會拋出異常

       捕獲異常實例:

try:
   result = sorts.objects.get(parentid=parentid, title=title)
   if result:
      return HttpResponse("<script>alert('同級類別名稱已經(jīng)存在');history.back();</script>")
except  sorts.DoesNotExist:
   print("tt")

  2、filter

  輸入?yún)?shù):filter的參數(shù)可以是字段也可以是擴展的where查詢關(guān)鍵字,如in,like,返回QuerySet包含與給定查找參數(shù)匹配的新對象。

  返回參數(shù):filter返回QuerySet對象,有沒有匹配的記錄都可以。

  filter有緩存數(shù)據(jù)的功能,第一次查詢數(shù)據(jù)庫并生成緩存,下次再調(diào)用filter方法的話,直接取得緩存的數(shù)據(jù),get方法每次執(zhí)行都是直接查詢數(shù)據(jù)庫的。


<