Python 2.7 一对多SQL关系 我试图在项目表和报告表之间建立一对多关系 用户可以创建新项目,稍后他可以创建一个或多个与该项目相关的新报告 这两个表格将用于报告问题。例如,如果我构建了一个新应用程序,我将创建一个包含我的应用程序名称的新项目。然后,当我在PC或iPhone等特定设备上测试我的应用程序时,我遇到了一个问题,我将创建一个关于这个问题的新报告
问题:Python 2.7 一对多SQL关系 我试图在项目表和报告表之间建立一对多关系 用户可以创建新项目,稍后他可以创建一个或多个与该项目相关的新报告 这两个表格将用于报告问题。例如,如果我构建了一个新应用程序,我将创建一个包含我的应用程序名称的新项目。然后,当我在PC或iPhone等特定设备上测试我的应用程序时,我遇到了一个问题,我将创建一个关于这个问题的新报告,python-2.7,flask,flask-sqlalchemy,Python 2.7,Flask,Flask Sqlalchemy,问题: 两个表之间的一对多关系是否正确 这里真的需要init函数吗?我在网上看到一些没有它们的代码 非常感谢您init函数就在那里,这样您就可以在创建类的实例时设置起始值或执行初始化函数。如果您觉得不需要这样做,可以省略init定义。包括创建一对多关系。它提供了一个示例,说明一个人拥有多个地址 class Person(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Strin
非常感谢您init函数就在那里,这样您就可以在创建类的实例时设置起始值或执行初始化函数。如果您觉得不需要这样做,可以省略init定义。包括创建一对多关系。它提供了一个示例,说明一个人拥有多个地址
class Person(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
addresses = db.relationship('Address', backref='person',
lazy='dynamic')
class Address(db.Model):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(50))
person_id = db.Column(db.Integer, db.ForeignKey('person.id'))
这和你的相符。唯一的区别是示例将关系放置在父模型上。它可以放置在任一模型上。我总是试着把它放在最有意义的地方
至于您的\uuuu init\uuuu
方法,它们很可能是不必要的。Flask SQLAlchemy的模型
类有一个\uuuu init\uuuu
接受关键字参数,允许您为列赋值。不同之处在于,您的版本需要指定的字段,而默认版本不需要任何字段
你的版本只能作为
project = Project('My Project', date(2015, 4, 23))
Model
的版本不仅以同样的方式工作,而且还可以作为
project = Project()
project.name = 'My Project'
project.date = date(2015, 4, 23)
>如果您觉得不需要做这些事情,可以省略init定义。谢谢你Rohn,这帮了你的忙你太棒了@dirn.>唯一的区别是示例将关系放置在父模型上。它可以放置在任一模型上。这就是原因!我在搜索时看到了这个人的地址示例,但后来我看到了其他一对多关系示例,它们在关系行中有所不同,这让我感到困惑。非常感谢。
project = Project()
project.name = 'My Project'
project.date = date(2015, 4, 23)