1. 程式人生 > >Django ORM queryset object 解釋(子查詢和join連表查詢的結果)

Django ORM queryset object 解釋(子查詢和join連表查詢的結果)

解釋 pri mod span books round 取數據 通過 color

#下面兩種是基於QuerySet查詢  也就是說SQL中用的jion連表的方式查詢
books = models.UserInfo.objects.all()

print(type(books)) ---> <class ‘django.db.models.query.QuerySet‘> 查詢出來是一個對象QuerySey

取值 print(books.values())



books = models.UserInfo.objects.filter()
print(type(books)) ---> <class ‘django.db.models.query.QuerySet‘> 查詢出來一個QureySet

取值 print(books.values())
 
總結:books查詢來了結果是queryset,然後在這個基礎上面查詢作者的名字,也就是跨表查詢,這時候就需要用values去獲取另外一個表的數據.
怎麽獲取呢? 就通過books.values("user__name") user是UserInfo表字段的名稱 __代表雙下劃線




#基於對象的查詢 也就是說SQL中用的子查詢,就是slecte 裏面套了slecte查詢方式
books = models.UserInfo.objects.first()
print(type(books)) ---> <class ‘app.models.UserInfo‘> 查詢出來是一個對象
取值 print(books.password)

總結:什麽是基於對象? 就是說books對象已經拿到了,相當於就是表中的name這個對象已經查詢到了,然後對象點屬性取值就可以了
可以用點的方式獲取數據 books.name 或者 book.age 等

Django ORM queryset object 解釋(子查詢和join連表查詢的結果)