那麼首先要知道什麼是orm
那具體orm是什麼呢?:(在django中,根據**中的類自動生成資料庫的表也叫--code first)orm:
orm在物件導向模型與關係模型之間架起橋梁。
通過物件與資料庫之間對映的元資料,自動透明地把編譯語音中的物件持久化到關聯式資料庫裡,對資料庫的操作可以轉換為對物件的操作
orm 有下面這些優點。
但是,orm 也有很突出的缺點。 django惰性機制所謂惰性機制:publisher.objects.all()或者.filter()等都只是返回了乙個queryset(查詢結果集物件),它並不會馬上執行sql,而是當呼叫queryset的時候才執行。
惰性機制之可迭代12
3# objs=models.book.objects.
all
() # [obj1,obj2,ob3...]
#
for
obj
in
objs: # 每一obj就是乙個行物件,此時會執行sql
# print(
"obj:"
,obj)
惰性機制之可切片12
34# objs=models.book.objects.
all
() # [obj1,obj2,ob3...]
# print(objs[1])
# print(objs[1:4])
# print(objs[::-1])
惰性機制之django快取問題
django有自己的快取,如果2次的obj物件一致,第二次的查值直接從快取中取值。如果2次操作之間有資料進行了修改 ,則需要重新從資料庫中查值,否則django會從快取中取出資料,影響最後的查詢結果。如果期間資料庫的內容作了更改,則需要重新查值。否則容易產生髒資料。
可以直接利用第一次的obj物件直接進行update操作,這樣下次for迴圈查詢時又重新執行了資料庫查詢操作,此時快取也作了更改; 也可以重新手動查詢一下結果,但是不推薦這樣,因為我們並不知道資料什麼時候會進行修改,妥善的還是django用資料時自己去查詢資料結果
那具體orm是什麼呢?:(在django中,根據**中的類自動生成資料庫的表也叫--code first)orm:
orm在物件導向模型與關係模型之間架起橋梁。
通過物件與資料庫之間對映的元資料,自動透明地把編譯語音中的物件持久化到關聯式資料庫裡,對資料庫的操作可以轉換為對物件的操作
orm 有下面這些優點。
但是,orm 也有很突出的缺點。 django惰性機制所謂惰性機制:publisher.objects.all()或者.filter()等都只是返回了乙個queryset(查詢結果集物件),它並不會馬上執行sql,而是當呼叫queryset的時候才執行。
惰性機制之可迭代12
3# objs=models.book.objects.
all
() # [obj1,obj2,ob3...]
#
for
obj
in
objs: # 每一obj就是乙個行物件,此時會執行sql
# print(
"obj:"
,obj)
惰性機制之可切片12
34# objs=models.book.objects.
all
() # [obj1,obj2,ob3...]
# print(objs[1])
# print(objs[1:4])
# print(objs[::-1])
惰性機制之django快取問題
django有自己的快取,如果2次的obj物件一致,第二次的查值直接從快取中取值。如果2次操作之間有資料進行了修改 ,則需要重新從資料庫中查值,否則django會從快取中取出資料,影響最後的查詢結果。如果期間資料庫的內容作了更改,則需要重新查值。否則容易產生髒資料。
可以直接利用第一次的obj物件直接進行update操作,這樣下次for迴圈查詢時又重新執行了資料庫查詢操作,此時快取也作了更改; 也可以重新手動查詢一下結果,但是不推薦這樣,因為我們並不知道資料什麼時候會進行修改,妥善的還是django用資料時自己去查詢資料結果
ORM的惰性機制
django惰性機制 所謂惰性機制 publisher.objects.all 或者.filter 等都只是返回了乙個queryset 查詢結果集物件 它並不會馬上執行sql,而是當呼叫queryset的時候才執行。惰性機制之可迭代 objs models.book.objects.all obj1...
Django中ORM的惰性機制
django惰性機制 所謂惰性機制 publisher.objects.all 或者.filter 等都只是返回了乙個queryset 查詢結果集物件 它並不會馬上執行sql,而是當呼叫queryset的時候才執行。惰性機制之可迭代12 3 objs models.book.objects.all ...
Diango中的查詢條件
屬性 運算子 值 1 gt 大於 2 lt 小於 3 gte 大於等於 4 lte 小於等於 5 in 表示在某一集合中。6 contains 是否包含,對大小寫敏感,相當於like。查詢名字中包含a的人 a persons persons.filter p name icontains a h3 ...