理解django中的QuerySet兩大特性:惰性執行和快取
1.什麼時候返回QuerySet物件?
Django的ORM中存在查詢集的概念。
查詢集,也稱查詢結果集、QuerySet,表示從資料庫中獲取的物件集合。
當呼叫如下過濾器方法時,Django會返回查詢集(而不是簡單的列表):
- all():返回所有資料。
- filter():返回滿足條件的資料。
- exclude():返回滿足條件之外的資料。
- order_by():對結果進行排序。
2.查詢集特性:
一:惰性執行
books = BookInfo.objects.all() # 此時,資料庫並不會進行實際查詢 # 只有當真正使用時,如遍歷的時候,才會真正去資料庫進行查詢 for b in books: print(b)
二:快取
# 進行資料庫實際查詢遍歷,儲存結果到bs,會進行資料庫實際互動
bs = [b.id for b in BookInfo.objects.all()]
# 再次呼叫快取結果bs,不再進行資料庫查詢,而是使用快取結果
print(bs) # [1, 2, 3, 4, 5, 6, 7, 10]
相關推薦
理解django中的QuerySet兩大特性:惰性執行和快取
1.什麼時候返回QuerySet物件? Django的ORM中存在查詢集的概念。 查詢集,也稱查詢結果集、QuerySet,表示從資料庫中獲取的物件集合。 當呼叫如下過濾器方法時,Django會返回查詢集(而不是簡單的列表): all():返回所有資料。 filte
理解Spring 的兩大特性(IOC和AOP)
Spring的核心特性就是IOC和AOPIOC:控制反轉 AOP:面向切面程式設計IOC:(媒婆)IOC,另外一種說法叫DI(Dependency Injection),即依賴注入。它並不是一種技術實現,而是一種設計思想。在任何一個有實際開發意義的程式專案中,我們會使用
JAVA記錄-Spring兩大特性
抽象類 我們 pro 系統 都是 服務類 資源 關系 註入組 1.IOC控制反轉 Ioc—Inversion of Control,即“控制反轉”,不是什麽技術,而是一種設計思想。在Java開發中,Ioc意味著將你設計好的對象交給容器控制,而不是傳統的在你的對象
css 兩大特性:繼承性和層疊性
css 有兩大特性: 繼承性和層疊性, 繼承性 面嚮物件語言都會存在繼承的概念,在面向物件的語言中,繼承的特點:繼承了父類的屬性和方法.那麼我們現在主要研究css,css中沒有方法,所以我們僅僅繼承屬性. 繼承:給父級設定一些屬性,子級會繼承父類的該屬性 ps:
Django中QuerySet物件(模型.objects)的常用方法
準備工作: 新建一個專案,在專案中新家一個app,名字自取。將app新增值settings.py中,然後配置settings連線資料庫。 在app中的models中新建模型: from django.db import models # Create your models h
[Django高階]理解django中的中介軟體機制和執行順序 [Django高階]理解django中的中介軟體機制和執行順序
[Django高階]理解django中的中介軟體機制和執行順序 原文來自 Understanding Django Middlewares, 這篇文章從整體上介紹了
spring中的兩大核心模組:IOC和AOP
Spring就像一個管家,幫你管理事務。傳統的應用,應用層(Struts2)和事務層(Service)聯絡很緊密,通過Spring管理之間的關係,減低其耦合性。Spring的出現就是為了解決現有問題,使開發更快捷,更健壯。另外,一定要好好學習Spring,他可是有一統天下的野心。有針對Stru
深入理解Spring的兩大特徵(IOC和AOP)
眾所周知,Spring的核心特性就是IOC和AOP,IOC(Inversion of Control),即“控制反轉”;AOP(Aspect-OrientedProgramming),即“面向切面程式設計”。參考書《Spring In Action》,下面分享一
Spring及Spring的兩大特性IOC和AOP
3.EJB的缺點 1巨大而複雜的規格說明:對於一個複雜的分散式系統,有一個文件進行說明是一件很合理的事情。但是,並不是所有的文件資訊都是真正必需的,EJB的文件反而成了一個非常不便利的工具。 2龐大的檔案,複雜的業務:開發設計一個專案之前,通常需要閱讀1000多頁的需求說明書文件。這是部署EJB時非常痛苦的
在TensorFlow中對比兩大生成模型:VAE與GAN(附測試程式碼)
def GAN_loss_with_labels(true_logit, fake_logit): """ Args: true_logit : Given data from true distribution,
在TensorFlow中對比兩大生成模型:VAE與GAN
變分自編碼器(VAE)與生成對抗網路(GAN)是複雜分佈上無監督學習最具前景的兩類方法。本文中,作者在 MNIST 上對這兩類生成模型的效能進行了對比測試。 本專案總結了使用變分自編碼器(Variational Autoencode,VAE)和生成對抗網路(GAN)對給定資料分佈進行建模,並且對比
oracle11g分割槽中的兩大陷阱
如何使用Oracle分割槽功能? 1.個別場景不能從根本上提高查詢速度 在Oracle10g時不支援自動生成分割槽,技術人員都是
【PyTorch教程】P3. Python學習中的兩大法寶函式(當然也可以用在PyTorch)
溫馨提示:為了更好的教程體驗,提供視訊、閱讀地址 Youtube: https://www.youtube.com/playlist?list=PLgAyVnrNJ96CqYdjZ8v9YjQvCBcK5PZ-V BiliBili: https://www.bilibili.com/video/av74281
3dTiles 資料規範詳解[3] 內嵌在瓦片檔案中的兩大資料表
> 轉載請宣告出處:全網@秋意正寒 # 零、本篇前言 說實話,我很糾結是先介紹瓦片的二進位制資料檔案結構,還是先介紹這兩個重要的表。思前想後,我決定還是先介紹這兩個資料表。 因為這兩個表不先給讀者灌輸,那麼介紹到瓦片的二進位制資料檔案結構時,就滿嘴“晦澀難懂”啦。 ## 資料與模型 上文介紹到,瓦
理解Django 中Call Stack 機制的小Demo
1.工作流程 request/response模式下,request並不是直接到達view方法,view方法也不是將返回的response直接傳送給瀏覽器的,而是request由外到裡的層層通過各種middleware層,這個時候可以對request做一些事情,到最後一層也就是最內層時,得到view方法返回的
Django中的日期處理註意事項和自定義時間格式轉換
python django datetime 我們在用Django創建models時,常常會涉及時間日期字段的處理,Django裏日期相關Field有DateTimeField、DateField和TimeField三種類型,看似簡單,但其中有一些容易出錯的地方需要註意;另外,如果不習慣Djang
軟件開發中的兩種人:實用主義和發燒友
class 軟件 實用 最好 們的 優缺點 www. 知識 你是 不論你是使用主義者還是發燒友,能有知道每個人都有自己的優缺點,專註於自己的的長處就好,最怕的就是自己是一種人卻偏要和另一種人比,比如明明自己是個實用主義者,卻總想有發燒友那樣對代碼的激情和專註。 程序員
獲取列表中的最大的N項和最小的N項
獲取列表中的最大的N項和最小的N項 #!/sur/bin/env python # -*- coding:utf-8 -*- # author:zengsf #time:2018/10/31 import heapq nums = [1, 0, 2, 29, 7, -7, 18, 23, 5, 2
返回一個二維整數陣列中的最大的子陣列和
一。題目: 1、輸入一個二維整形陣列,數組裡有正數有負數。 &nbs
Elasticsearch中的兩種查詢操作query和filter
ES中的查詢操作分為2種:查詢(query)和過濾(filter)。 查詢即是之前提到的query查詢,它(查詢)預設會計算每個返回文件的得分,然後根據得分排序。 而過濾(filter)只會篩選出符合的文件,並不計算得分,且它可以快取文件。所以,單從效能考慮,過濾比查詢更快