【发布时间】:2019-08-28 00:58:00
【问题描述】:
我正在编写传递通过 SQL Alchemy 查询的 SQL 响应的 web api。我想用源表检索查询的列名。
这是一个例子:
fields = [
StudentsTable.name,
SubjectsTable.name
]
query = self.session()\
.query(*fields)\
.filter(StudentsTable.id_some_fk == SubjectsTable.id_some_pk)
return {
"meta": {
"fields": query.column_descriptions
},
"data": query.all()
}
“字段”变量将是动态的,例如。用户将能够将其作为字符串列表传递,我希望得到 SQLAlchemy 的统一响应,而不是通过迭代 fields 变量。
有了这个query.column_descriptions,我得到了预期的列名。但是,这些只是列名,没有源表名。所以,在这种情况下,我得到两个“名称”列,我不确定它是哪个名称。
{
"meta": {
"fields": [
{
"name": "name",
"type": null,
"aliased": false,
"expr": null,
"entity": null
},
{
"name": "name",
"type": null,
"aliased": false,
"expr": null,
"entity": null
}
]
},
"data": []
}
【问题讨论】:
标签: python sqlalchemy