静态模型与动态模型烧瓶之间的关系

时间:2018-12-26 16:38:51

标签: python flask sqlalchemy flask-sqlalchemy

我有两个与表vul_to_threat关联的模型(Threat_db,Vulnerability_db),这是多对多关系 Threat_db模型是静态的(我们只能创建和放置一次数据),而Vulnerability_db模型是动态的(它一直在变化)

vul_to_threat=db.Table("vul_to_threat",
 db.Column('id_vul',db.Integer,db.ForeignKey('vulnerability_db.vuln_id')), 
 db.Column('id_threat',db.Integer,db.ForeignKey('threat_db.threat_id')) 
)

class Threat_db(db.Model):
   threat_id=db.Column(db.Integer,primary_key = True)
   threat_name = db.Column(db.String(30),unique=True)

   def __init__(self, threat_name):
     self.threat_name = threat_name



class Vulnerability_db(db.Model):
   vuln_id = db.Column(db.Integer, primary_key = True)
   title = db.Column(db.String(150),nullable=False,unique=True)
   assoc_threat_to_vul_table = db.relationship('Threat_db',secondary="vul_to_threat",backref=db.backref('assoc_threat__backref'))


   def __init__(self, title):
      self.title = title

我的问题是我如何才能将数据添加到Vulnerability_db中并将其(在vul_to_threat表中)关联到Treat_db中的一行或多行,而不必仅在Vulnerability_db中将任何数据添加到Treat_db中

for i in vul_list:
    if not exist_in_db(i,"vul"):
        temp_assoc=Vulnerability_db(i)
        temp_assoc.assoc_threat_to_vul_table.append(Threat_db(i))
        db.session.add(temp_assoc)
db.commit()

在这段代码中,我可以在模型之间建立关联,但是我也将数据添加到Threat_db中(由于append),该如何解决呢?希望这是可以理解的 谢谢

0 个答案:

没有答案