【发布时间】:2022-01-04 08:43:53
【问题描述】:
您好,我有两张这样的桌子:
父母是这样的
class Policy(Base):
"""table containing details for Policies"""
__tablename__ = "UmbrellaPolicy"
id = Column(Integer, primary_key=True)
policy_id = Column(Integer, nullable=False, index=True)
user_defined_name = Column(String(255), nullable=True)
孩子是这样的
class Site(Base):
__tablename__ = "Site"
id = Column(Integer, primary_key=True)
policy_id = Column(Integer, ForeignKey("Policy.id"))
site_id = Column(String(32), nullable=False, index=True)
policy = relationship("Policy", backref="sites")
现在我想获取 Policy 表的所有数据,但仅在 site_id = 100 处获取站点表的数据。我将如何在 orm 中做到这一点?我的意思是 sql 炼金术?请指导
目前正在这样做,但它会带来所有政策:我可以限制谁只获得 site_id = 100 的网站
policies = (
session.query(Policy)
.join(Site)
.filter(
Policy.user_defined_name == 'yes',
)
.all()
)
这会使用 leftjoins 来完成吗?但是我如何在烧瓶中使用它?
【问题讨论】:
标签: python python-3.x flask orm flask-sqlalchemy