Flask框架之多对多关系模型类的定义

案例代码:

table_relation = db.Table(‘stu_tea_rel‘,  # 关系表明
                          db.Column(‘stu_id‘, db.Integer, db.ForeignKey(‘student.id‘)), # 多关系表的主键
                          db.Column(‘tea_id‘, db.Integer, db.ForeignKey(‘teacher.id‘)))    # 多关系表的主键

class Student(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))

class Teacher(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))
    students = db.relationship(‘Student‘,
                               backref=‘teacher‘,
                               lazy=‘dynamic‘)

代码分析:

1. 分别创建两个多关系模型

class Student(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))

class Teacher(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))

2. 创建多对多关系表

table_relation = db.Table(‘stu_tea_rel‘,
                          db.Column(‘stu_id‘, db.Integer, db.ForeignKey(‘student.id‘)),
                          db.Column(‘tea_id‘, db.Integer, db.ForeignKey(‘teacher.id‘)))

3. 在模型类中添加多对多关系字段

class Teacher(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))
    students = db.relationship(‘Student‘,
                               backref=‘teacher‘,
                               lazy=‘dynamic‘)

这个关系字段在两个多对多关系模型中任选一个定义即可。

原文地址:https://www.cnblogs.com/chao666/p/12424957.html

时间: 2024-10-09 11:14:56

Flask框架之多对多关系模型类的定义的相关文章

Flask框架之一对多关系模型定义

案例代码: #定义模型 class BookInfo(db.Model): #设置表名 __tablename__ = 'bookinfo' #设置为主键之后,自动自增长 id = db.Column(db.Integer,primary_key=True) name = db.Column(db.String(20),unique=True,nullable=False) pub_date = db.Column(db.Date,nullable=True) readcount = db.Co

7.Django模型类的定义和管理

Django的模型类是给ORM层服务的 1.每个数据模型都是django.db.models.Model的子类. 2.它的父类Model包含了所有必要的和数据库交互的方法,并提供了定义数据库字段的语法. 3.每个模型相当于一个数据库表(这条规则的例外情况是多对多关系,多对多关系的时候会多生成一张关系表), 4.每个属性是表中的一个字段.属性名就是字段名,类型就是字段类型 5.模型之间的三种关系 一对一(OneToOneField) 一对多(ForeignKey) 多对多(ManyToMangFi

Django进阶Model篇002 - 模型类的定义

一.创建数据模型. 实例: 作者模型:一个作者有姓名. 作者详情模型:把作者的详情放到详情表,包含性别.email 地址和出生日期,作者详情模型与作者模型之间是一对一的关系(OneToOneField) 出版商模型:出版商有名称,地址,所在城市,省,国家,网址. 书籍模型:书籍有书名,出版日期,价格.一本书可能会有多个作者,一个作者也可以写多本书,所以作者与书籍的关系是多对多的关联关系(many-to-many),一本书只应该由一个出版商出版,所以出版商和书籍是一对多的关联关系(one-to-m

Hibernate框架学习之一(关系模型)

Hibernate是一种orm技术框架,处于面向对象和数据库的中间层次 一.概述 1. 作为面向对象的思考者,希望的最理想的情况是在使用对象的时候,最少的关注数据库 2. 对象与关系型数据库在领域概念上却又有着天然的不一致 (1)领域概念应对成对象是需要有行为的 (2) 对象的概念在数据的表中不是完全一样的 下面就总结一下对象的关系在数据库中的样子,同时引出Hibernate的几种表达关系注解的使用方式 @OneToOne @OneToMany @ManyToOne @ManyToMany 二.

Hibernate双向多对多对象关系模型映射

1 双向many-to-many 业务模型: 描述员工和项目 一个员工同时可以参与多个项目 一个项目中可以包含多个员工 分析:数据库的数据模型,通过中间关系表,建立两个one-to-many构成many-to-many 1 create table emp 2 ( 3 eno int primary key auto_increment, 4 ename varchar 5 ); 6 create table project 7 ( 8 pid int primary key auto_incr

play framework框架中多对多的实体类的注解配置

假如是用户表与权限表的多对多,其中用户表中的注解配置: // 权限    @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)    @JoinTable(name = "user_permission", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "per

django 学习-10 Django多对多关系模型

1.vim blog/models.py class   Author(models.Model): name = models.CharField(max_length=30) def unicode(self): return self.name class Book(models.Model): name = models.CharField(max_length=30) authors = models.ManyToMany(Author) def unicode(self): retu

django之模型类、迁移和数据库表之间的关系

环境配置:ubuntu 16.04,Django 1.8.2,MySQL-python 1.2.5 目的是为了了解模型类的定义和其对应数据库里面表的关系 实测发现: 关于模型类和数据库里面的表关系,模型类里面定义的类属性是为了生成数据库里面的表结构使用的,类似mysql里面创建一个表. 一个模型类,对应着数据库里面的一个表. 一个类属性,对应着数据库表里面的一个字段 一个类属性的类型(如charfield),对应着数据库里面字段类型. 进入python manage.py shell运行的pyt

Python Flask框架——全栈开发(知了课堂)

章节1:Flask视图和URL 课时1[虚拟环境]为什么需要虚拟环境06:28 课时2[虚拟环境]virtualenv创建虚拟环境13:55 课时3[虚拟环境]virtualenvwrapper使用16:42 课时4[Flask预热]课程介绍45:34 课时5[Flask预热]Flask课程准备工作11:30 课时6[Flask预热]URL组成部分详解14:02 课时7[Flask预热]web服务器+应用服务器+web应用框架14:16 课时8[Flask URL]第一个flask程序详解24: