Categories
Python Answers

How to insert many-to-many data with Python Flask and SQLAlchemy?

Spread the love

Sometimes, we want to insert many-to-many data with Python Flask and SQLAlchemy.

In this article, we’ll look at how to insert many-to-many data with Python Flask and SQLAlchemy.

How to insert many-to-many data with Python Flask and SQLAlchemy?

To insert many-to-many data with Python Flask and SQLAlchemy, we can append the data with append.

For instance, we write

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()

to create the association_table that creates a many to many relationship between Parent and Child.

Then we create a Parent and Child instance with

p = Parent()
c = Child()

Next, we create a link between p and c with

p.children.append(c)

Then we commit the operation with

db.session.add(p)
db.session.commit()

Conclusion

To insert many-to-many data with Python Flask and SQLAlchemy, we can append the data with append.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *