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