Python 如何“解析”SQLAlchemy查询结果中的外键?

Python 如何“解析”SQLAlchemy查询结果中的外键?,python,sqlalchemy,flask-sqlalchemy,Python,Sqlalchemy,Flask Sqlalchemy,我已经编写了一个小工具,它根据一个书面规范创建SQLAlchemy代码。该工具可以创建如下代码: 类别人员B.型号: id=db.Columndb.Integer,主键=True name=db.Columndb.String50 address\u id=db.Columndb.Integer,db.ForeignKey'address.id' 类Addressdb.Model: id=db.Columndb.Integer,主键=True email=db.Columndb.String50

我已经编写了一个小工具,它根据一个书面规范创建SQLAlchemy代码。该工具可以创建如下代码:

类别人员B.型号: id=db.Columndb.Integer,主键=True name=db.Columndb.String50 address\u id=db.Columndb.Integer,db.ForeignKey'address.id' 类Addressdb.Model: id=db.Columndb.Integer,主键=True email=db.Columndb.String50 我可以插入新记录,我可以查询它们,这就像一个符咒,但我真的希望不必手动寻找一个人的地址

我希望能够通过person对象访问属于特定个人的地址。如果我正确理解了这些例子,我需要像这个例子那样做,基于什么

类别人员B.型号: id=db.Columndb.Integer,主键=True name=db.Columndb.String50 address=db.relationship'address',backref='person', “动态的” 类Addressdb.Model: id=db.Columndb.Integer,主键=True email=db.Columndb.String50 person\u id=db.Columndb.Integer,db.ForeignKey'person.id' 在我看来,这一切都是倒退的,我必须给每个地址一个链接到一个人,然后backref,这样我就可以有一个人的地址?这不可能直接从人身上做到吗


另外,为此创建代码要复杂得多,所以我真的希望避免这种情况。

在第一个示例中,一个人可以有一个地址,但每个地址都可以由多个人使用。 在第二个解决方案中,人员现在可以有多个地址,但每个地址对于给定的人员都是唯一的。请注意,ForeignKey移动了表


因此,您从N:1变为1:N。通过说您想要N面列表,而不是1面实例,您现在必须指定更多。

我知道,这就是我问的原因。我找不到1:1的例子,1:N的例子对我来说都是多余的反向引用。我想知道如何做1:1的最简单的方法,使我不必做第二次查询地址时,我有人。