Flask 从数据库模型中检索任意PK
如果我有一个带有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在此人身上的名称不
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()