<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 查詢集`QuerySet` ## 一、基本使用 **1)**當調用模型管理器的`all`,`filter`,`exclude`,`order_by`等方法時,返回的是一個`QuerySet`對象,**表示從數據庫查詢到的數據集合**; | objects管理器中的方法 | 返回類型 | 作用 | | --- | --- | --- | | 模型類.objects.all() | QuerySet | 查詢所有的對象 | | 模型類.objects.filter() | QuerySet | 查詢滿足條件的對象 | | 模型類.objects.exclude() | QuerySet | 查詢不滿條件的對象 | | 模型類.objects.order\_by() | QuerySet | 對查詢結果集進行排序 | **2)**`QuerySet`提供的方法 | `QuerySet`方法 | 返回類型 | 作用 | | --- | --- | --- | | get() | 模型對象 | **查詢一個對象,且只能有一個**: 如果查到多條數據,則報:`MultipleObjectsReturned` 如果查詢不到數據,則報:`DoesNotExist` | | all() | QuerySet | 查詢所有的對象 | | count() | 數字 | 查詢總共有多少條數據 | | filter() | QuerySet | 查詢滿足條件的對象 | | exclude() | QuerySet | 查詢不滿條件的對象 | | order\_by() | QuerySet | 對查詢結果集進行排序 | | aggregate() | 字典,例如: {'salary\_\_avg': 9500.0} | 進行聚合操作`Sum, Count, Max, Min, Avg` | | exists() | 布爾型 | True表示有查詢集中有數據,否則沒有 | 鏈式寫法:`Employee.objects.filter(id__gt=3).order_by('-age')` **3)**支持**下標**和**切片**操作 1. `query_set[0]`:取出查詢集中的第一條數據,不存在會拋`IndexError`異常 2. `query_set[0:2]`:切片操作得到另一個新的`QuerySet` 3. **注意:下標不能為負數** ## 二、查詢集兩大特性 **1\. 惰性查詢** * 創建查詢集時不會訪問數據庫,操作查詢集中的數據時才會訪問; * 操作查詢集指**下標、切片、迭代操作,與if合用**等 ~~~ # 得到查詢集,不會訪問數據庫 query_set = Department.objects.all() # 此時才訪問數據庫 print(query_set[0]) ~~~ **2\. 緩存功能** 1. 當遍歷(迭代)訪問查詢集**所有數據**,會緩存查詢集所有數據,當再次操作該查詢集中的數據時,將會使用緩存; ~~~ # 創建查詢集 query_set = Department.objects.all() # 會查詢數據庫 [dep.name for dep in query_set] # 使用緩存,不再查數據庫 [dep.name for dep in query_set] ~~~ 2. 如果只是訪問查詢集**部分數據**(下標或切片)不會緩存 ~~~ # 創建查詢集 query_set = Department.objects.all() # 會查詢數據庫 query_set[0] # 會查詢數據庫 query_set[0] ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看