Django(关系映射/多表实例)

本文介绍了Django中如何处理关系映射,包括一对一映射、一对多映射和多对多映射的实现方式。在一对一映射中,使用OneToOneField进行定义,并通过on_delete参数处理删除操作。一对一插入和查询数据进行了演示,正向和反向查询的方式也进行了说明。对于一对多映射,强调了先创建'一'再创建'多'的顺序,以及查询时使用book_set的方式。最后,讲解了多对多映射的数据添加和查询操作。
摘要由CSDN通过智能技术生成

在关系数据库中,通常不会把所有数据都放在同一张表中,不易于扩展,常见的关系映射有

1.一对一映射 一个身份证对应一个人

2.一对多映射 一个班级可以有多个学生

3.多对多映射 一个学生可以报多个课程,一个课程可以有多个学生学习

一对一

语法:OneToOneField(类名,on_delete = xxx)

class A(models.model):

        .....

class B(model.model):

        属性 = model.OneToOneField(A,on_delete = xxx)

例子:

一对一【插入数据】 

 一对一【查询数据】

正向查询:直接通过外键属性查询

#通过wife找author

 反向查询:

 一对多

 一对多【插入数据】

 先创建‘一’再创建‘多’

 

一对多【查询数据】 

1.正向查询【通过book查询publisher】

  

 

!!!book_set (book是类名)

多对多

 

 

多对多【添加数据】

 

多对多【查询数据】

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值