QuerySet經常使用方法 使用 connection.queries 能夠查看sql語句 filter 將知足條件的結果返回,返回值爲QuerySet對象 exclude 將知足條件的結果過濾掉,返回值爲QuerySet對象 annotate 給QuerySet中的每個對象都添加一個查詢表達式,(Q,F,聚合函數)的字段 order_by 安裝某個字段進行排序,默認爲從小到大排序,若是想要重大到小能夠在字段前加「-」,須要注意order_by能夠傳遞多個參數,會按照前後級別進行排序,並且order_by還能夠用annotate新增的字段來排序,注意:order_by重複調用會只會保存最後一個。 values:提取須要哪些字段,默認會把所有都提取出來。返回的結果是QuerySet,可是其中包裹的不是模型,而是字典,若是想要提取關聯數據,那麼能夠經過F表達式來完成。values也可使用聚合函數 values_list 提取須要字段,返回QuerySet,其中包裹的元組,若是數據只有一條,則可使用flat=True進行扁平化處理,直接返回結果 all 方法:返回所有數據(返回包裹對象的QuerySet) select_related : 能夠將關聯的對象一塊兒查詢出來,只能用於外鍵鏈接的形式(一對多或者一對一的形式) prefetch_related : 使用的時候傳入反向引用的時候調用的名稱默認爲 filed_set,使用這個方式能夠用來查詢多對一或者多對多的方式,也能夠用來查詢一對一或者一對多的,可是不推薦。 defer : 過濾掉不須要的字段,返回值是一個包裹着模型的QuerySet only : 提取某些字段,返回一個包裹模型的QuerySet get : 直接返回對象,只能返回一條數據,若是返回數據超過一條就會報錯,若是沒有匹配到任何數據也會報錯。 create : 用於增長一條數據,而且將數據保存在數據庫中,至關於先建立數據,而後調用save方法 get_or_create : 若是給定的條件存在數據就查找返回,若是不存在就建立一個,而後在返回,返回結果是一個元組,元組中兩個內容,第一個是模型對象,第二個是bool值,若是沒有建立返回False,若是建立了返還True。 bulk_create :能夠一次性建立多條數據。 count :獲取知足條件的數據的個數 first,last 分別返回QuerySet中第一條和最後一條數據 exists : 判斷數據是否存在,存在返回True,不存在返回False distinct : 去重,默認按照所有字段判斷。注意若是和order_by同時使用會失效 update :更新數據 delete : 刪除數據,須要注意:字段中on_delete的級聯刪除方式