Django中Queryset的使用(一)

Queryset的使用

Queryset是懶加載的,部分支持鏈式調用。對象

支持鏈式調用的接口:排序

  • all接口: 用於查詢全部數據
  • filter接口: 根據條件進行過濾
  • exclude接口: 同filter,只是相反的邏輯
  • reverse接口: 把Queryset中的結果倒序排列
  • distinct接口: 用來進行去重查詢
  • none接口: 返回空的Queryset

不支持鏈式調用的接口:接口

  • get接口:用於查詢,存在返回對應的實例,不存在,則拋出DoesNotExist異常
  • create接口:直接建立一個Model對象
  • get_or_create接口:根據條件查找,若是沒有查找到,就調用create建立
  • update_or_create接口:同get_or_create,只是用來作更新操做
  • count接口:用於返回Queryset有多少條記錄
  • latest接口:用於返回最新一條記錄,但須要在Model的Meta中定義:get_latest_by = <用來排序的字段>
  • earliest接口:同上,返回最先的一條記錄
  • first接口:從當前Queryset記錄中獲取第一條
  • last接口:同上,獲取最後一條
  • exists接口:返回True或者False,只須要判斷Queryset是否有數據用這個接口最合適
  • bulk_create接口:同create,用來批量建立記錄
  • in_bulk接口:批量查詢
  • update接口: 用來根據條件批量更新記錄
  • delete接口: 同update,這個接口是用來根據條件批量刪除記錄。update和delete都會出發Django的signal
  • values接口:當咱們明確知道只須要返回某個字段的值,不須要Model實例時,能夠使用
  • values_list接口:同values,但直接返回的是包含tuple的Queryset
相關文章
相關標籤/搜索