您不需要直接在关联表中添加任何内容,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()


