对象  关系  模型 wusir博客地址orm官网API总结 django官网orm-API orm概要: ORM 跨表查询 class Book(models.Model): title = models.CharField( max_length=32) publish=models.ForeignKey(to="Publish",to_field="id") authors=models.ManyToManyField(to='Author',related_…
目录 一:表关系外键 1.提前创建表关系 2.目前只剩 书籍表和 书籍作者表没创建信息. 3.增 4.删 5.修改 二:多对多外键增删改查 1.给书籍绑定作者 2.删 3.修改 4.清空 三:正反向的概念 1.什么是正向? 2.什么是反向? 3.判断正向反向 4.查询方式 5.应用场景.all() 四:多表查询 1.子查询与联表查询 五:子查询(基于对象的跨表查询) 1.子查询(正向) 2.子查询(正向)总结 3.子查询(反向) 4.子查询(反向) 六:联表查询(基于双下划线的跨表查询) 1.v…
复习 单表查询 # 单表操作 # 增 # 方式1 user_obj=models.User.objects.create(**kwargs) # 之一create # 方式2 user_obj=models.User(**kwargs) user_obj.save() # 查 user_queryset=models.User.objects.filter(**kwargs) # 多个过滤条件是and关系 user_obj=models.User.objects.get() # 不推荐使用 us…
外键 (foreign key) ## 外键 ```mysql # 作者(author):id,name,sex,age,mobile, detail_id # 作者详情(author_detail): id,info,address # 1.外键的 字段名 可以自定义(名字随意),通常命名规范(关联表_关联字段) # 2.外键要通过 foreign key 语法建立表与表之间的关联 # 3.foreign key(所在表的外键字段) references 关联表(关联字段) # eg:fore…
多对一: 为了方便理解,两个表之间使用ForeignKey连接时,使用ForeignKey的字段所在的表为从表,被ForeignKey连接的表为主表. 使用场景:书和出版社之间的关系,一本书只能由一个出版社出版,一个出版社却可以出版很多书 实现方式:一对多或者说多对一,在Django中是使用ForeignKey实现的,下面是例子: class Publisher(models.Model): """出版社模型""" id = models.Aut…
一.多对多的实现原理 在数据库中实现多对多的关系,必须使用连接表.也就是用一个独立的表来存入两个表的主键字段,通过遍历这张表来获取两表的关联关系. 而在我们的对象中,多对多是通过两者对象类中互相建立对方类的对象集合,类似上一篇讲到的一对多的集合类! 在Hibernate中是通过<many to many>来进行设置.同样多对多也存在双向和单向之分,表现到Hibernate中就是配置文件和POJO代码的不同.这里以单向映射为例,双向映射与之类似. 二.实例演示 1.建立数据模型 我们以学生与老师…
表关系的实现   预备知识 ORM的正向操作和反向操作: 1.正向操作:一个模型中定义了一个外键,通过该模型对该外键操作的操作叫做正向操作. 2.反向操作:被外键所关联的模型,通过该模型对外键所在模型的操作叫做反向操作.   表关系的操作 我们通过下面的案例,来了解表关系的操作 首先我们需要几张表:学生表,学生信息表,班级表,报名表,课程表 他们的关系是:学生表和学生信息表  一对一 班级表和学生表         一对多 学生表和课程表         多对多 下面是Django 模型代码:…
一.前戏要做好 配置:settings.py #注册drf INSTALLED_APPS = [ # ... 'api.apps.ApiConfig', 'rest_framework', ] ​ #配置数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'dg_proj', 'USER': 'root', ', } } """ 在任何(根或者app)的__init__文件中…
多表关系 一对多/多对一 O 对象 一的一方使用集合. 多的一方直接引用一的一方. R 关系型数据库 多的一方使用外键引用一的一方主键. M 映射文件: 一: <set name=""> <key column="" /> <one-to-many class="" /> </set> 多: <many-to-one name="" column=""…
表与表之间的关系 """ 把所有数据都存放于一张表的弊端 1.组织结构不清晰 2.浪费硬盘空间 3.扩展性极差 """ # 上述的弊端产生原因类似于把代码全部写在一个py文件中,你应该怎么做?>>>解耦合!将上述一张表拆成员工和部门两张表! # 类似的表关系学生与班级,也是如此,一张学生表和一张班级表 ””” 确立表与表之间的关系 一定要换位思考(必须两方都考虑周全之后才能得出结论) 以员工表和部门表为例 先站在员工表看能否有多…