# 匯入模組
from django.db.models import f,q
資料準備:
查詢賣出數大於庫存數的書籍
res = models.book.objects.filter(sold__gt=f('inventory'))
print(res)
#
將所有書籍的**提公升50models.book.objects.update(price=f('price') + 50)
將所有書的名稱後面增加爆款兩個字
注意:在操作字元型別的資料時,f不能直接做到字串的拼接,需要匯入模組兩個模組
from django.db.models.functions import concat
from django.db.models import value
from django.db.models.functions import concat
from django.db.models import value
models.book.objects.update(title=concat(f('title'),value('爆款')))
# 匯入模組
from django.db.models import f,q
res = models.book.objects.filter(q(sold__gt=100)|q(price__lt=600))
print(res)
res = models.book.objects.filter(q(sold__gt=100),q(price__lt=600))
print(res)
res = models.book.objects.filter(~q(sold__gt=100) , q(price__lt=600))
print(res)
# 先產生乙個空物件 實列化
q = q()
q.connector = 'or' # and修改成or
# q物件裡面有乙個children
# 第乙個元素就會被當作查詢條件的左邊 第二個元素會被當作查詢條件右邊
res = models.book.objects.filter(q) # filter 除了可以放條件 還可以放物件
print(res) # 預設還是and關係
1.可以在去物件內 children裡面 無限制的新增元素 新增元組,兩個元素。
2.而且還支援修改 or and not
3.預設是and
事務:具有acid四個特性
事務的回滾:rollback
事務的確認:commit
首先需要匯入模組
from django.db import transaction
完成句式:from django.db import transaction
try:
with transaction.atomic():
# sql語句
# sql語句
# 在with**塊內書寫的所有orm都屬於同乙個事務
except exception as e:
print(e)
print('q其他操作')
Django F查詢與Q查詢
f查詢 from django.db.models importf ret models.book.objects.filter read num gt f comment num print ret print ret.values title 結果 給全部書的 加1 models.book.ob...
Django F查詢Q查詢Only與Defel
f q查詢 測試表from django.db import models create your models here.class mycharfield models.field def init self,max length,args,kwargs self.max length max ...
Django 查詢集 F物件以及Q物件
f物件 eg 常適用於表內屬性的值的比較 模型 class company models.model c name models.charfield max length 16 c gril num models.integerfield default 5 c boy num models.int...