Django数据模型--表关系(一对多)】的更多相关文章

一.一对一关系 使用方法:models.ForeignKey(要关联的模型) 举例说明:年级.教师和学生 from django.db import models class Grade(models.Model): name = models.CharField(max_length=) class Student(models.Model): name = models.CharField(max_length=) grade = models.ForeignKey(Grade) 注意:外键…
目录 一:表关系外键 1.提前创建表关系 2.目前只剩 书籍表和 书籍作者表没创建信息. 3.增 4.删 5.修改 二:多对多外键增删改查 1.给书籍绑定作者 2.删 3.修改 4.清空 三:正反向的概念 1.什么是正向? 2.什么是反向? 3.判断正向反向 4.查询方式 5.应用场景.all() 四:多表查询 1.子查询与联表查询 五:子查询(基于对象的跨表查询) 1.子查询(正向) 2.子查询(正向)总结 3.子查询(反向) 4.子查询(反向) 六:联表查询(基于双下划线的跨表查询) 1.v…
多表关系 一对多/多对一 O 对象 一的一方使用集合. 多的一方直接引用一的一方. R 关系型数据库 多的一方使用外键引用一的一方主键. M 映射文件: 一: <set name=""> <key column="" /> <one-to-many class="" /> </set> 多: <many-to-one name="" column=""…
# -------------------------------------------------------------------------------------------------------- # 三张表 出版社表 书籍表 作者表 # # # 书籍表 # class Book(models.Model): # name = models.CharField(max_length=20) # price = models.IntegerField() # pub_date =…
MySQL表关系 一对多关系 一对多与多对一是一个概念,指的是一个实体的某个数据与另外一个实体的多个数据有关联关系. 举例,学校中一个学.院可以有很多的学生,而一个学生只属于某一个学院(通常情况下),学院与学生之间的关系就是一对多的关系,通过外键关联来实现这种关系. #创建学院表: mysql> CREATE TABLE `department`( -> `id` INT PRIMARY KEY AUTO_INCREMENT, -> `name` VARCHAR(10) NOT NULL…
约束条件 unsigned 无符号 即为非负数,用此类型可以增加数据长度 例如 tinyint最大范围是127,那tinyint unsigned 最大就可以到 127 * 2 通常用在不会出现符号的字段当中 需要注意的是 浮点型不可以使用unsigned colum_name tinyint zerofill; zerofill 零填充 在数字长度不够的数据不够的int数据类型前面填充0,以达到设定长度 colum_name int(8) zerofill; not null 非空 将列的值强…
Ⅰ.常用查询  1.几个概念 每一个django模型类,都有一个默认的管理器,objects,查询就是依赖于objects管理器进行的(在创建时就被添加了). QuerySet表示数据库中对象的列表(QuerySet也是一个类).它可以有0到多个过滤器.过滤器通过给定参数,缩小查询范围.(filter) QuerySet等同于select语句,过滤器是一个限制子句,比如where,比如limit. 1)环境进入 2.常用查询代码 1)QuerySet 的方法(查询方法) all() 获取所有 S…
admin是django自带的后台管理,在初始的时候就默认配置好了 当输入ip地址的时候后面跟admin,就会登陆管理员的后台,这个是django自带的,可以快速管理数据表(增删改查) PS:ip地址后/admin就可以登陆,登录前要先创建一个超级用户的账号 菜单的tools - run manage.py task... 输入createsuperuser 根据提示创建,密码必须是8位不能纯数字   root/root123456 在admin.py文件夹内 from django.contr…
外键 在MySQL中,表有两种引擎,一种是InnoDB,另外一种是myisam.如果使用的是InnoDB引擎,是支持外键约束的. 外键的使用 使用外键前需要先确保相应外键已存储在数据库中(flask中会在你引用时自动保存相应外键). 如果想要引用另外一个app的模型,那么应该在传递to参数的时候,使用app.model_name进行指定. 如果模型的外键引用的是本身自己这个模型,那么to参数可以为'self',或者是这个模型的名字. 外键的删除 如果一个模型使用了外键.那么在对方那个模型被删掉后…
多表操作 文件为 ---->  orm2 数据库表关系之关联字段与外键约束 一对多Book id title price publish email addr php 人民出版社 北京 python 沙河出版社 沙河 go 人民出版社 北京 java 人民出版社 北京 Book多 id title price publish_id php python go java Publish一 id name email addr 人民出版社 北京 沙河出版社 沙河 查询python这本书的出版社的邮箱…
Django 常用的查询 常用的查询方法 常用的查询条件 常用字段映射关系 Field常用参数 表关系的实现 查用的查询方法 这是需要用到的数据 from django.http import HttpResponse from .models import User def special_search(request): # 查询所有的记录 res = User.objects.all() print(res) return HttpResponse('查询成功') # 查询第一条数据 re…
1.常用查询 模型类上的管理器: ** 模型类.objects ** (1)常用一般查询 rs = Student.objects.all() # 查询所有记录,返回Queryset print(rs.query) # 返回rs的SQL语句, 针对Queryset对象 rs = Student.objects.filter(name='XM') # 条件查询, 可传多个参数, 返回Queryset # from django.db.models import Q # Student.object…
一. 多表操作 数据库表关系之关联字段与外键约束 一对多 book(多) publish(一) 查询<<水浒传>>这本书出版社的地址: select publish_id from Book where title="水浒传" select addr from Publish where id=1 一旦确定了一对多的关系: 建立一对多的关系,在多的一方建立关联字段(publish_id) 多对多: book author book2author: panshao…
表关系的实现   预备知识 ORM的正向操作和反向操作: 1.正向操作:一个模型中定义了一个外键,通过该模型对该外键操作的操作叫做正向操作. 2.反向操作:被外键所关联的模型,通过该模型对外键所在模型的操作叫做反向操作.   表关系的操作 我们通过下面的案例,来了解表关系的操作 首先我们需要几张表:学生表,学生信息表,班级表,报名表,课程表 他们的关系是:学生表和学生信息表  一对一 班级表和学生表         一对多 学生表和课程表         多对多 下面是Django 模型代码:…
多表操作 文件为 ---->  orm2 数据库表关系之关联字段与外键约束 一对多Book id title price publish email addr 1 php 100 人民出版社 111 北京 2 python 120 沙河出版社 222 沙河 3 go 110 人民出版社 119 北京 4 java 300 人民出版社 111 北京 Book多 id title price publish_id 1 php 100 1 2 python 120 1 3 go 110 2 4 jav…
关系表介绍及使用 一对一关系 xx = models.OneToOneField(to='表名',to_field='字段名',on_delete=models.CASCADE) #on_delete:删除时的一些级联效果,to_field可以不写,默认是关联到另一张表的主键,on_delete在1.x版本的django中不用写,默认是级联删除的,2.x版本的django要写. 增加数据 方式1 new_author_detail = models.AuthorDetail.objects.cr…
Django 表关系的创建 我们知道,表关系分为一对多,多对多,一对一 我们以一个图书管理系统为背景,设计了下述四张表,让我们来找一找它们之间的关系 Book与Publish表 找关系:一对多 左表(Book)<------------------------------->右表(Publish) # 步骤一: #分析1.先站在左表的角度 左表的多条记录代表多本书籍,右表的一条记录代表一个出版社,多本书籍对应同一个出版社 ✔️ #分析2.再站在右表的角度去找 右表的多条记录代表多个出版社,左表…
外键删除操作 如果一个模型使用了外键.那么在对方那个模型被删掉后,该进行什么样的操作.可以通过on_delete来指定.可以指定的类型如下: CASCADE:级联操作.如果外键对应的那条数据被删除了,那么这条数据也会被删除. PROTECT:受保护.即只要这条数据引用了外键的那条数据,那么就不能删除外键的那条数据. SET_NULL:设置为空.如果外键的那条数据被删除了,那么在本条数据上就将这个字段设置为空.如果设置这个选项,前提是要指定这个字段可以为空. SET_DEFAULT:设置默认值.如…
一:django中ORM创建表关系 ORM创建外键关系 1.表与表之间的关系 1.表与表之间的关系 一对多 一对一 多对多 2.操作目标条件: 图书表 出版社表 作者表 作者详情表 3.外键关联 一对多: 图书和出版社是一对多的关系 外键字段建在多的那一方 book 多对多: 图书和作者是多对多的关系 需要创建第三张表来专门存储 一对一: 作者与作者详情表是一对一 4.表关系的判断 换位思考 ORM针对外键字段的创建位置 1.不常用的数据我们称之为冷数据 2.常用的数据我们称之为热数据 一对多:…
Php Laravel框架 多表关系处理 之 Eloquent一对多关系处理 本博文主要介绍 Laravel 框架中 Eloquent  对一对多关系的处理以及在 Laravel Administrator(后台扩展包)中的应用. 您的数据库可能是彼此相关的.比方,一篇博客文章可能有很多评论,或者一个订单与下订单的用户相关.Eloquent 使得管理和处理这些关系变得简单.Laravel 提供了四种类型的关系: -一对一 -一对多 -多对多 - 多态关系 一对多 一个一对多关系的样例是一篇博客文…
一对多表设计和查询方法 #!/usr/bin/env python3 # Author: Zhangxunan from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, ForeignKey, UniqueConstraint, Index, Table from sqlal…
在上一篇文章中, http://www.cnblogs.com/joeylee/p/3790980.html  我们用 PD15.1 来设计了数据库,并且生成 了sql数据库,现在我们用 vs2013来试试  用 ModeFirst模式来设计数据库,并且生成数据库, 在PD中的表结构如下 下面我们用 vs2013来设计一下 创建2个表,并且在空白地方 新增 关联 为 一对多 我们根据这个模型,来生成数据库看看 点击生成后,我们看到 数据库里面表已经生成. 而且还生成了外键.   下面我们来把剩下…
1.常用的模型字段类型 https://docs.djangoproject.com/en/2.1/ref/models/fields/#field-types 2.字段的常用参数 官方文档:https://docs.djangoproject.com/en/2.1/ref/models/fields/#field-options 3.常用查询 通过模型类上的管理器来构造QuerySet. 模型类上的管理器是啥? ​ 模型类.objects,<django.db.models.manager.M…
1.自定义主键字段的创建 AutoFiled(pirmary_key=True) # 一般不会自定义2.order_by asc desc 1. 表关系的创建- OneToOne student = models.OneToOneField('Student', on_delete=models.CASCADE)- OneToMany grade = models.ForeignKey('Grade', on_delete=models.SET_NULL, null=True)- ManyToM…
在本文中,我们将向读者详细介绍如何在更新和删除父表数据的同时,触发有关子表数据的级联更新和删除操作.您将看到当使用InnoDB表的时候,借助于外键约束就可以轻松搞定这一过程. 一.利用外键约束更新并删除MySQL中的数据 我们知道,开发能够维护多个表的完整性的数据库驱动的应用程序是一件非常复杂的事情——即使应用程序所面对的是当前最流行的开源关系型数据库管理系统MySQL服务器时也不例外.如果一个应用程序必须处理多个数据库表,而这些表之间有存在着某些预定义的关系,这时一旦父表中的数据被更新或者删除…
本节内容 引入 NHibernate中的集合类型 建立父子关系 父子关联映射 结语 引入 通过前几篇文章的介绍,基本上了解了NHibernate,但是在NHibernate中映射关系是NHibernate中的亮点,也是最难掌握的技术.从这篇开始学习这些东西,我将图文结合来说明这里奥秘的知识. 前几篇,我们的例子只使用了一个简单的Customer对象.但是在客户/订单/产品的经典组合中,他们的关系非常复杂?让我们先回顾在第二篇中建立的数据模型. 在图上,我已经清晰的标注了表之间的关系,首先分析Cu…
一.前言 1.什么是ORM? ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法. 2.ORM的优缺点是什么? 优点:摆脱复杂的SQL操作,适应快速开发:让数据结构变得简洁:数据库迁移成本更低(如从mysql->oracle) 缺点:性能较差.不适用于大型应用:复杂的SQL操作还需通过SQL语句实现 映射关系:…
对象  关系  模型 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_…
*** detail表级联 student表,detail获取student的学生信息,自己做为扩展 一对一关系 models.OneToOneField student = models.OneToOneField('Student', on_delete=models.CASCADE) # 一对一关系 # 级联表,在从表中定义 OneTOOndeFideld on_delete=models.CASCADE 你删我就 # 'student为表名, 加引号是为了防止 student 定义在下面…
昨日内容回顾 多表方案: 如何确定表关系呢? 表关系是在2张表之间建立的,没有超过2个表的情况. 那么相互之间有2条关系线,先来判断一对多的关系. 如果其中一张表的记录能够对应另外一张表的多条记录,那么关系线成立! 如果只有一条线成立,那么就是一对多的关系. 如果有2条线成立,那么就是多对多的关系. 比如book和publish.一本书不能对应多个出版社(常规是这样的,否则就盗版了),那么不成立. 一个出版社可以对应多本书,关系线成立.所以book和publish表的关系是一对多的关系 多对多的…