学习笔记——Django项目中关联查询以及关联查询的筛选
2022-10-01
关联查询:
在Django项目中使用ORM模式设置表后,进行关联查询,即两个表直接有联系的查询。
方式:
可以通过主表查询从表,也可以通过从表查询主表。
----------------
方式一实例:
(1)查询编号为1的图书中的人物
前提环境,进入pycharm,进入虚拟环境、进入shell环境。
首先,需要导入模块,先查询书籍编号为1的图书,后在此书中查询包含的人物。
from book.models import BookInfo1
book = BookInfo1.objects.get(id = 1)
通过主表查询从表信息
book.personinfo_set.all()
注:我的天呐,姐妹们,要注意了,“personinfo_set”后面是没有括号的,不加括号类似于系统默认给定的属性值。大早上的,搞人心态,晕~~~。
说明:其中"personinfo"表中的字段有“id”、“name”、“gender”、“description”、“is_delete”、“book_id”。
--------------------
方式二:
通过从表查看主表,查询人物为1的书籍信息
导入模块,先查询到人物编号为1的记录,在查询信息。
from book.models import PersonInfo
person = PersonInfo.objects.get(id = 1)
person.book
查看所在书籍的名称
person.book.name
------------------------------------------
关联查询的筛选
两种方式:
同上,筛选条件一种是通过主表查询从表,一种是通过从表查询主表。
方式一:
实例:查询图书,要求人物中包含“顾里”
同理,首先需要导入模块,
from book.models import BookInfo1
进行查询:
BookInfo1.objects.filter(personinfo__name = "顾里")
说明:使用到“关联模型表的小写”是因为“BookInfo”是一个主表,默认包含了“personinfo”。如果表中含有外键,那么它是一个从表。
-----------------
方式二:
通过从表查看主表
实例:查询人物,要求是编号为1的书籍中
首先,同理,还是先导入模块,之后由于是从表中所以内部包含了外键,直接通过包含外键的属性“book”进行调用。
from book.models import PersonInfo
PersonInfo.objects.filter(book__id = 1)
相关文章
- 一篇运维老司机的大数据平台监控宝典(2)-联通大数据集群平台监控体系详解
- 一篇运维老司机的大数据平台监控宝典(1)-联通大数据集群平台监控体系进程详解
- 空中换引擎 博时基金数字化转型经验谈
- 如何高效地学习编程语言
- 作为一名阿里巴巴数据分析大牛,送给学弟学妹的经验积分
- 为什么要学习R语言
- Hadoop大数据分析平台的介绍性讨论
- 最全面的Spring学习笔记
- 16个用于数据科学和机器学习的顶级平台
- 给有抱负的数据科学家的六条建议
- 如何做一枚合格的数据产品经理
- 除Kaggle外,还有哪些顶级数据科学竞赛平台
- 一个鲜为人知却可以保护隐私的训练方法:联合学习
- 干货 :送你12个关于数据科学学习的关键提示(附链接)
- 大数据行业有多少种工作岗位,各自的技能需求是什么?
- 中国移动研究院常耀斌:商用大数据平台的研发之路
- 这些数据科学家必备的技能,你拥有哪些?
- 自学成才的开发者有何优势和劣势?
- Gartner报告:正处于数据科学与机器学习工具 “大爆炸”的时代
- Ready Computing借助InterSystems IRIS医疗版为医疗机构提供具有高度互操作性和可扩展性的解决方案