SQLAlchemy技术问询:如何通过field变量获取对应表名
从func.sum字段中提取表名
- 可以通过拆解SQLAlchemy字段的内部结构来获取表名,步骤如下:
- 先获取求和的目标列对象:
field.expression.clauses[0] - 从列对象中获取所属的表对象:
field.expression.clauses[0].table - 直接读取表对象的
name属性得到表名:field.expression.clauses[0].table.name
- 先获取求和的目标列对象:
验证代码示例
>>> field = func.sum(MyModel.count) >>> target_column = field.expression.clauses[0] >>> target_column.table.name 'my_model'
- 核心逻辑:SQLAlchemy的
func.sum()返回的FunctionElement对象,其expression属性存储了完整的表达式结构,逐层拆解就能拿到底层关联的表对象,进而提取表名。
内容的提问来源于stack exchange,提问作者akpp
相关产品推荐
相关产品推荐

