SQLAlchemy之backref和back_populates
backref和back_populates在表示两个表之间的关系时,很有用。
查看backref的文档,
1 | class User(db.Model): |
之后在命令行中,可以得到如下结果
1 | >>> u = User(name='Bob') |
即通过u.addresses可以访问到用户的addresses, 而a.user可以访问到用户。注意到u.addresses返回的是列表,而a.user返回的是单个元素,即User与Address是一对多的关系。
也可以使用back_populates实现相同的功能,
1 | class User(db.Model): |
在交互环境中,得到如下结果
1 | >>> u = User(name='Clack') |
从文档中得知,back_populates是用来取代backref的,虽然backref也是一直支持使用。倾向于使用back_populates, 因为它比backref更直接明了。