f查詢from django.db.models import
f,q
#當查詢條件來自於資料庫的某個字段,這個時候就必須使用f
#查詢賣出數大於庫存數的商品
res = models.product.objects.filter(maichu__gt=f('
kucun'))
#將所有商品的**提高100塊
models.product.objects.update(price=f('
price
')+100)
#將所有商品的名字後面加乙個爆款字尾
from django.db.models.functions import
concat
from django.db.models import
value
models.product.objects.update(name=f('
name
')+'
爆款') #
錯誤示範
models.product.objects.update(name=concat(f('
name
'),value('爆款'
))) q查詢
#當你的查詢條件想以或的關係查詢資料
models.product.objects.filter(q(name='
變形金剛
'),q(price=999.99)) #
這樣寫預設還是and關係
models.product.objects.filter(q(name='
變形金剛
')|q(price=999.99))
#q與普通過濾條件混合使用
models.product.objects.filter(q(name='
變形金剛
'),price=100.00)
q查詢高階操作(******)
#先例項化乙個q物件
q =q()
q.connector = 'or'
'name
','jason'))
'price
',666))
#q物件支援直接放在filter括號內
models.user.objects.filter(q) #
q物件預設也是and關係
事務
from django.db import
transaction
with transaction.atomic():
#這裡寫多個資料庫操作
print('
其他邏輯**')
自定義字段型別
class
mycharfield(models.field):
def__init__(self,max_length,*args,**kwargs):
self.max_length =max_length
super().
__init__(max_length=max_length,*args,**kwargs)
defdb_type(self):
return
'char(%s)
'%self.max_length
class
user(models.model):
name = models.charfield(max_length=32)
password = mycharfield(max_length=32)
only與defer
#兩者是相反的
res = models.user.objects.only('
name')
choices欄位
class
user(models.model):
name = models.charfield(max_length=32)
password = mycharfield(max_length=32)
choices = ((1,'
重點大學
'),(2,'
普通本科
'),(3,'
專科'),(4,'其他'
)) education = models.integerfield(choices=choices)
user_obj.education
#拿到的是數字
user_obj.get_education_display() #
固定用法 獲取choice欄位對應的注釋
F Q查詢,事務以及only與defer
在models檢視中建立列表 class product models.model name models.charfield max length 32 price models.decimalfield max digits 8,decimal places 2 maichu models.in...
MySql多表查詢 事務
1.準備sql 建立部門表 create table dept id intprimary keyauto increment,name varchar 20 建立員工表 create table emp id intprimary keyauto increment,name varchar 10...
mysql查詢事務和鎖
記錄原因 今天在乙個mysql更新語句的執行過程中,總是執行超時,後來查到原因是因為有乙個事務沒有關閉,導致那條記錄的查詢和更新都會執行超時 以下的sql語句可以查詢當前資料庫,有哪些事務,都鎖定哪些資源 select trx id as 事務id trx state as 事務狀態 trx req...