Flask 从数据库模型中检索任意PK

Flask 从数据库模型中检索任意PK,flask,sqlalchemy,flask-sqlalchemy,Flask,Sqlalchemy,Flask Sqlalchemy,如果我有一个带有PK的模型,比如说device\u id(所以它不是id),我在另一个表中进行了关联: x=db.Column(db.Integer,db.ForeignKey('device.device\u id')) 如何在sqlalchemy查询中引用此列 在Django中,我可以使用Device.pk,它将解析pk。这在sqlalchemy的烧瓶中可能吗?您可以加入它,或者使用sqlalchemy的关系自动发挥它的魔力 看起来你在谈论一种多对一的关系,所以: 如果PK在此人身上的名称不

如果我有一个带有PK的模型,比如说
device\u id
(所以它不是
id
),我在另一个表中进行了关联:

x=db.Column(db.Integer,db.ForeignKey('device.device\u id'))

如何在sqlalchemy查询中引用此列


在Django中,我可以使用
Device.pk
,它将解析pk。这在sqlalchemy的烧瓶中可能吗?

您可以加入它,或者使用sqlalchemy的关系自动发挥它的魔力

看起来你在谈论一种多对一的关系,所以:

如果PK在此人身上的名称不同,您只需调整
ForeignKey
以匹配:

class Person(db.Model):
    toot = 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.toot'))
如果我想找出所有电子邮件地址为
test@example.com
我只能说:

Person.query.join(Address).filter(Address.email='test@example.com').all()
这是你的电话号码。
Person.query.join(Address).filter(Address.email='test@example.com').all()