Python 在Alchemy中向具有一对多关系的多个表插入数据
因此,我有3个表,每个表都有一对多的关系: 1名家长->2名子女 2个孩子每人有3个孙子,这使得 1名家长->6名孙子 当我在一个父项下创建2个子项时,如何创建6个孙子项,并根据其各自的子项进行区分?以下是我在输入1个父对象时希望在数据库中输入的内容的示例: 下面是我的代码: 型号.pyPython 在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(
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
任何人请告诉我循环部分,或者如果我编码错误。我可以想象,如果孙子表中有多个列,事情会变得更加复杂。非常感谢你的帮助