1. 程式人生 > >Django F() 的作用

Django F() 的作用

F() 函式的作用:

F()允許Django在未實際連結資料的情況下具有對資料庫欄位的值的引用。

通常情況下我們更新資料時需要先從資料庫裡將原資料取出後存在記憶體裡,然後編輯某些屬性,最後提交。

比如實現模糊查詢時,查詢 ID 比phone大的欄位,通常我們會這麼寫:

num = Reporters.objects.get(name = 'phone') #取出phone的id
obj = UserInfo.objects.filter(id__gt = num) #gt表示大於

如果我們使用F()函式的話,上面的兩行程式碼等價於下面這個:

from django.db.models import
F #導包 obj = UserInfo.objects.filter(id__gt=F('phone'))

原理:當Django程式中出現F()時,Django會使用SQL語句的方式取代標準的Python操作。

上述程式碼中,python做的唯一的事情就是通過Django的F()函式建立了一條SQL語句然後執行而已。