2018-12-01 模型

查詢集:表示從數(shù)據(jù)庫中獲取的對(duì)象集合
查詢集可以有多個(gè)過濾器

  1. 在管理器上調(diào)用過濾方法

  2. 查詢集經(jīng)過過濾器篩選后返回一個(gè)新的查詢集,所以可以寫鏈?zhǔn)秸{(diào)用

  3. 惰性執(zhí)行 -- 創(chuàng)建查詢集不會(huì)帶來任何數(shù)據(jù)庫的訪問直到調(diào)用數(shù)據(jù)時(shí),才會(huì)訪問數(shù)據(jù)

  4. 直接訪問數(shù)據(jù)的情況
    ? 迭代
    ? 序列化
    ? 與if合用

  5. 返回查詢集的方法就是過濾器
    all()
    filter() -- 返回符合條件的數(shù)據(jù)
    ? filter(鍵=值,鍵=值)
    ? filter(鍵=值).filter(鍵=值)
    ? 以上寫法條件都是且關(guān)系

  6. exclude() -- 過濾掉符合條件的數(shù)據(jù)

  7. order_by() -- 排序

  8. values() -- 一條數(shù)據(jù)就是一個(gè)對(duì)象(字典),一返回一個(gè)列表

  9. 返回單個(gè)數(shù)據(jù)
    ? get() -- 返回一個(gè)滿足條件的對(duì)象,如果沒有找到符合條件的對(duì)象,會(huì)引發(fā)一個(gè)模型類異常(未找到異常),如果找到對(duì)個(gè)對(duì)象也會(huì)引發(fā)一個(gè)異常

  10. count() -- 返回當(dāng)前查詢集中的對(duì)象個(gè)數(shù)

  11. first() -- 返回查詢集中的第一個(gè)對(duì)象

  12. last() -- 返回查詢集中的最后一個(gè)對(duì)象

  13. exists() -- 判斷查詢集中是否有數(shù)據(jù),有返回true否則返回false

  14. 限制查詢集 -- 返回列表,可以使用下標(biāo)的方法進(jìn)行限制,等同于sql中的limit語句
    ? 注意:下標(biāo)不能是負(fù)數(shù)

  15. 查詢集的緩存 -- 每個(gè)查詢集都包含一個(gè)緩存,來最小化的對(duì)數(shù)據(jù)庫訪問(減少數(shù)據(jù)庫的查詢壓力)
    在新建的查詢集中,緩存是為空,第一次對(duì)查詢集求值(直接訪問數(shù)據(jù)庫),此時(shí)會(huì)發(fā)生緩存,在下次訪問相同的數(shù)據(jù)時(shí),會(huì)優(yōu)先訪問緩存

  16. 字段查詢 -- 實(shí)現(xiàn)了sql中的where語句,作為過濾器的參數(shù)(條件)
    語法:屬性名__比較運(yùn)算符=值
    如:age__gt=20
    查詢外鍵:屬性名_id
    轉(zhuǎn)義:sql中的like語句中的%為通配符(模糊查詢),如果需要向匹配%則需要轉(zhuǎn)移name__contains='%'
    比較運(yùn)算符
    ?? exact -- 判斷,大小寫敏感
    ?? contains -- 是否包含,大小敏感
    ?? startswith/endswith -- 以什么開頭/以什么結(jié)尾
    ?? 以上加上一個(gè)i就表示不區(qū)分大小寫
    ?? isnull/isnotnull -- 是否為空/不為空
    ?? in -- 是否包含在范圍內(nèi)
    ?? gt/gte/lt/lte/ -- 大于、大于等于、小于、小于等于
    ?? year/month/day/week_day/hour/minute/second -- 時(shí)間相關(guān)
    ?? 關(guān)聯(lián)查詢 -- 類sql中的內(nèi)關(guān)聯(lián)和外關(guān)聯(lián)
    ?? 查詢快捷 -- pk -- 主鍵

    聚合函數(shù) -- 使用aggregate()函數(shù)返回的值
    ?? AVG
    ?? Count
    ?? Max
    ?? Min
    ?? Sum

??F對(duì)象 -- 支持算數(shù)運(yùn)算和相同對(duì)象間的字段比較

??Q對(duì)象 -- 過濾器中的方法中的關(guān)鍵字參數(shù),最要做條件組合(且 &、或 | 、非 ~ )
??只有一個(gè)Q對(duì)象時(shí)就是用于單條件過濾(有跟沒有一樣)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評(píng)論 19 139
  • Django 1.8.2 文檔Home | Table of contents | Index | Modules...
    軒轅小愛閱讀 2,425評(píng)論 0 2
  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 32,317評(píng)論 2 89
  • 我是彥彥,這是我的每天一篇原創(chuàng)文章之第281篇。 今天我一直在聊天,跟各種各樣的人聊天,感覺就像放電影一樣,好像走...
    彥值圈閱讀 254評(píng)論 0 3
  • 村頭,嘴饞的小胖孩繞著賣肉湯的老爹爹遲遲不愿意離去,眼巴巴得盯著鍋里的肉湯。 爹爹瞧她眼睛放光的可愛模樣,著實(shí)惹人...
    九命熠心閱讀 234評(píng)論 0 0

友情鏈接更多精彩內(nèi)容