在Sqlalchemy中按表类获取表名

2024-04-25 23:05:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把一个类传递给一个函数,但不想再传递这个名称。

class TableClass(Base):
    __table__ = Table('t1', metadata, autoload=True)
def get_name(TableClass):
    print TableClass.GetTableName()  # print 't1'
get_name(TableClass)

所以,我用谷歌搜索,但没有答案。


Tags: 函数name名称truebasegetdeftable
3条回答

依据:

How to discover table properties from SQLAlchemy mapped object

我可以用这个:

print TableClass.__table__.name
print TableClass.__tablename__

对我有用

独立于您是否使用声明性扩展,您可以使用Runtime Inspection API

def get_name(TableClass):
    from sqlalchemy import inspect
    mapper = inspect(TableClass)
    print mapper.tables[0].name

请注意,一个类可以有多个映射到它的表,例如在使用Inheritance时。

相关问题 更多 >