栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Flask SQLAlchemy多对多插入数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Flask SQLAlchemy多对多插入数据

您不需要直接在关联表中添加任何内容,SQLAlchemy会这样做。这或多或少来自SQLAlchemy文档:

association_table = db.Table('association', db.Model.metadata,    db.Column('left_id', db.Integer, db.ForeignKey('left.id')),    db.Column('right_id', db.Integer, db.ForeignKey('right.id')))class Parent(db.Model):    __tablename__ = 'left'    id = db.Column(db.Integer, primary_key=True)    children = db.relationship("Child",         secondary=association_table)class Child(db.Model):    __tablename__ = 'right'    id = db.Column(db.Integer, primary_key=True)p = Parent()c = Child()p.children.append(c)db.session.add(p)db.session.commit()

因此,您的示例将如下所示:

student_identifier = db.Table('student_identifier',    db.Column('class_id', db.Integer, db.ForeignKey('classes.class_id')),    db.Column('user_id', db.Integer, db.ForeignKey('students.user_id')))class Student(db.Model):    __tablename__ = 'students'    user_id = db.Column(db.Integer, primary_key=True)    user_fistName = db.Column(db.String(64))    user_lastName = db.Column(db.String(64))    user_email = db.Column(db.String(128), unique=True)class Class(db.Model):    __tablename__ = 'classes'    class_id = db.Column(db.Integer, primary_key=True)    class_name = db.Column(db.String(128), unique=True)    students = db.relationship("Student",         secondary=student_identifier)s = Student()c = Class()c.students.append(s)db.session.add(c)db.session.commit()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/640808.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号