Python 在Alchemy中向具有一对多关系的多个表插入数据

Python 在Alchemy中向具有一对多关系的多个表插入数据,python,for-loop,sqlalchemy,flask-sqlalchemy,Python,For Loop,Sqlalchemy,Flask Sqlalchemy,因此,我有3个表,每个表都有一对多的关系: 1名家长->2名子女 2个孩子每人有3个孙子,这使得 1名家长->6名孙子 当我在一个父项下创建2个子项时,如何创建6个孙子项,并根据其各自的子项进行区分?以下是我在输入1个父对象时希望在数据库中输入的内容的示例: 下面是我的代码: 型号.py class Parent(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(

因此,我有3个表,每个表都有一对多的关系: 1名家长->2名子女 2个孩子每人有3个孙子,这使得 1名家长->6名孙子

当我在一个父项下创建2个子项时,如何创建6个孙子项,并根据其各自的子项进行区分?以下是我在输入1个父对象时希望在数据库中输入的内容的示例:

下面是我的代码:

型号.py

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

    parents_info = db.relationship('Children', backref='parents')

class Children(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(120))
    asset_amount = db.Column(db.Integer())

    parents_id = db.Column(db.Integer, db.ForeignKey('parents.id'))

    children_info = db.relationship('Grandchildren', backref='child')

class Grandchildren(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(120))
    gender = db.Column(db.String(120))

    children_id = db.Column(db.Integer, db.ForeignKey('children.id'))
def build_sample_db():
    db.create_all()

    # Add to Parent table
    parent = Parent()
    parent.name = "Jack Sparrow"

    db.session.add(parent)

    # Add to Children table
    children_name = ['Hulk','Ironman']
    amount = ['300','500000']

    children_list = []
    for i in range(len(fraudster_name)):
        children = Children()
        children.name = children_name[i]
        children.asset_amount = amount[i]
        children.parents = parent

        db.session.add(children)


    ### Correct me if I'm wrong at formatting the list
    grandchildren_name = [['Hulk_one', 'Hulk_two', 'Hulk_three'], ['Ironman_one', 'Ironman_two', 'Ironman_three']]
    gender = [['female','female','male'], ['female','male','male']]
    ### How do I loop through my grandchildren to put into database

    db.session.commit() 
    return 
构建数据库py

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

    parents_info = db.relationship('Children', backref='parents')

class Children(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(120))
    asset_amount = db.Column(db.Integer())

    parents_id = db.Column(db.Integer, db.ForeignKey('parents.id'))

    children_info = db.relationship('Grandchildren', backref='child')

class Grandchildren(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(120))
    gender = db.Column(db.String(120))

    children_id = db.Column(db.Integer, db.ForeignKey('children.id'))
def build_sample_db():
    db.create_all()

    # Add to Parent table
    parent = Parent()
    parent.name = "Jack Sparrow"

    db.session.add(parent)

    # Add to Children table
    children_name = ['Hulk','Ironman']
    amount = ['300','500000']

    children_list = []
    for i in range(len(fraudster_name)):
        children = Children()
        children.name = children_name[i]
        children.asset_amount = amount[i]
        children.parents = parent

        db.session.add(children)


    ### Correct me if I'm wrong at formatting the list
    grandchildren_name = [['Hulk_one', 'Hulk_two', 'Hulk_three'], ['Ironman_one', 'Ironman_two', 'Ironman_three']]
    gender = [['female','female','male'], ['female','male','male']]
    ### How do I loop through my grandchildren to put into database

    db.session.commit() 
    return 
任何人请告诉我循环部分,或者如果我编码错误。我可以想象,如果孙子表中有多个列,事情会变得更加复杂。非常感谢你的帮助