【发布时间】:2018-09-25 18:49:57
【问题描述】:
我有 urls 和 requests 表,并且我定义了这样的关系:
class Request(Base):
...
url_id = Column('url_id', Integer, ForeignKey(Url.id))
requests = relationship(Url, backref='requests')
这意味着我可以询问Url.requests 并获取所有针对给定网址发出的请求。但是,我想做的是为一组仅限于特定日期的 Url 获取 requests。
我可以编写这个来获得我想要的结果集,但我不知道如何将它整齐地打包,所以我可以遍历我的 Url 对象并为每个对象获取 .requests。理想情况下,我也想预先加载这些 Request 对象。这是我写的内容以获取我想要的行:
session.query(Url).join(Request).filter(Request.created >= start_date, Request.created < end_date)
如果我转储查询,它看起来很合理,但是当我遍历 url 并询问每个 .requests 时,我得到 所有 的请求,而不仅仅是那些通过我的请求筛选。用 ORM 可以做到这一点吗?
【问题讨论】:
标签: python sqlalchemy