我正在使用-
- eve-sqlalchemy 0.5
- SQL炼金术1.2.1
- PyMySQL 0.8.0
我的域定义如下所示:
class CommonColumns(Base):
__abstract__ = True
_created = Column(DateTime, default=func.now())
_updated = Column(DateTime, default=func.now(), onupdate=func.now())
_etag = Column(String(40))
class Host(CommonColumns):
__tablename__ = 'host'
cpa_id = Column(String(30), primary_key=True)
host = Column(String(45))
port = Column(Integer)
instance = Column(String(20))
status = Column(String(10))
partnerships = relationship("Partnership", back_populates='host')
class Partnership(CommonColumns):
__tablename__ = 'partnership'
id = Column(Integer, primary_key=True, autoincrement=True)
cpa_id = Column(String(30), ForeignKey('host.cpa_id'))
service = Column(String(40))
action = Column(String(50))
status = Column(String(10))
host = relationship("Host", back_populates='partnerships')
在启动 eve 并在数据库中填充数据之后。我能够查询主机和合作伙伴关系。他们还在响应中返回主机或合作伙伴 ID。
对属于资源伙伴关系的项目之一的示例响应:
{
"host": "0020",
"id": 1,
"service": "service1",
"action": "action1",
"status": "active",
"_updated": "Tue, 30 Jan 2018 23:52:32 GMT",
"_created": "Tue, 30 Jan 2018 23:52:32 GMT",
"_etag": "e09fd6eb612f722ad26bf0b7f528f42d2f585d04",
"_links": {
"parent": {
"title": "home",
"href": "/"
},
"self": {
"title": "Partnership",
"href": "partnerships/1"
},
"collection": {
"title": "partnerships",
"href": "partnerships"
}
}
}
如何让它包含主机资源中的其他字段?这在通常情况下需要一个连接查询,但我想知道它是否在前夕以某种方式处理。
最佳答案
您应该能够使用嵌入
参数:https://github.com/pyeve/eve-sqlalchemy/blob/master/docs/tutorial.rst#embedded-resources
使用 &embedded={"host":1}
它应该包括整个主机资源。
我不确定这是否适用于您当前的环境/版本。
关于python - 在eve-sqlalchemy中查询一个joined数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48532969/