Django ORM queryset object 解释(子查询和join连表查询的结果)
Posted ajaxa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django ORM queryset object 解释(子查询和join连表查询的结果)相关的知识,希望对你有一定的参考价值。
#下面两种是基于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连表查询的结果)的主要内容,如果未能解决你的问题,请参考以下文章
Django - 原始 SQL 查询或 Django QuerySet ORM