咱们继续,既然有单表,一对多,也必然少不了今天的主角 ‘多对多’
多对多关系
多对多关系中, 必须创建独立的关系表来关联数据
多对多中, 通过关系属性来关连/查询数据
1> 定义关系表来设置外键
2> 定义关系属性 多对多关系属性, 还需要设置参数secondary="关系表名"
3> 使用关系属性来关联数据
多对多是通过建立中间表实现的。中间表值记录关系和存储关系字段。
这个中间表将互为多对多的关系表的主键设为外键。
这个关系表是直接建立的,不适用于模型类映射
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
# 设置数据库连接地址
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql://root:mysql@127.0.0.1:3306/test18"
# 是否追踪数据库修改 很消耗性能, 不建议使用
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
# 设置在控制台显示底层执行的SQL语句
app.config["SQLALCHEMY_ECHO"] = False
# 创建数据库连接
db = SQLAlchemy(app)
# 创建关系表 多对多关系必须创建单独的表来记录关联数据
t_stu_cur = db.Table("table_stu_cur",
db.Column("stu_id"