在Sqlalchemy中按表类获取表名

Ayl*_*ake 8 python sqlalchemy

我想将一个类传递给一个函数,并且不想再次传递该名称.

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

所以,我用谷歌搜索它,没有答案.

van*_*van 5

无论您是否使用声明式扩展,您都可以使用运行时检查 API

def get_name(TableClass):
    from sqlalchemy import inspect
    mapper = inspect(TableClass)
    print mapper.tables[0].name
Run Code Online (Sandbox Code Playgroud)

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


小智 5

print TableClass.__tablename__
Run Code Online (Sandbox Code Playgroud)

为我工作