Django 一些少用卻很實用的orm查詢方法

2021-10-01 16:43:42 字數 1279 閱讀 5563

一.使用q物件進行限制條件之間 「或」 連線查詢

from django.db.models import q

from django.contrib.auth.models import user

obj = user.objects.

filter

(q(name=

"bob"

)| q(age=28)

)# 在使用者表中查詢name為 bob 或者 age 為28的物件

二.使用 startwith 和 endswith 進行字段資料起始字元和結尾字元的條件查詢

'''

'''obj = user.objects.

filter

(name__startswith=

"x")

# 查詢以 "x" 開頭的name欄位,欄位名和關鍵字之間用兩個下劃線連線

obj = user.objects.

filter

(email__endswith =

"163.com"

)# 查詢使用了163郵箱的使用者

三.存在外來鍵時,進行反向查詢的方法

假如存在乙個course表,裡面存在乙個外來鍵字段指向user使用者表,在需要進行登入驗證的介面中,直接通過request.user的方式就可以得到當前使用者的乙個user物件,直接使用這個user物件進行反向查詢,就可以獲取course表的資料

query_set = request.user.course__set.

all(

)# course表中存在外來鍵字段指向user表,user例項物件.外來鍵所在的表名小寫__set.all()

四.直接獲取乙個查詢集下多個查詢物件的某幾個字段值

1

from

.models import userinfo

5 data_set = userinfo.objects.

all(

).values_list(

"user_name"

,"age"

,"money"

, flat=

true

)# 返回的資料結構是乙個列表,列表裡面巢狀的是元組,乙個元組,就是一條滿足條件的資料,也可以使用values(),返回的是列表巢狀字典格式的資料

諾基亞手機一些少為人知的設定

一 06 顯示imei碼 二 0000 顯示軟體版本 部分型號如果不起作用,可按 型號 如 6110 第一行 軟體版本 第二行 軟體發布日期 第三行 手機型號 三 92702689 顯示序列號和imei碼,帶滾動選單 第二屏表示 串號和imei 但一經輸入就不能再作更改,日期會被永久記錄 第五屏表示...

說說一些少見的IP和掩碼

今天遇到一件窩火的事情,被0.0.0.0的掩碼玩得很狼狽。以前的需求要求掩碼至少有1個1,就是說是不支援0.0.0.0的。但是對於三層路由來說,又要求0.0.0.0。對路由有些許了解就清楚,對於預設路由,一般為下面形式 檢視了tcp ip網際互聯中對掩碼的說明,掩碼為0.0.0.0一般與ip位址為0...

C語言一些少見但很有用的語法

我們平時用的都是 define,突然遇到了這個。其實,undef 與 define 相對應。undef 的作用是取消已經有的巨集定義。include define max 5 int main 當取消第6行printf的注釋,將會報錯,max undeclared 因為max巨集被undef 取消了...