如何从SQLAlchemy映射对象发现表属性

发布于 2021-01-29 19:02:28

我有一个用表声明的方式映射到表的类,并且我想从此类中“发现”表属性,列,名称,关系:

engine = create_engine('sqlite:///' + databasePath, echo=True)

# setting up root class for declarative declaration
Base = declarative_base(bind=engine)

class Ship(Base):
    __tablename__ = 'ships'

    id = Column(Integer, primary_key=True)
    name = Column(String(255))

    def __init__(self, name):
            self.name = name

    def __repr__(self):
            return "<Ship('%s')>" % (self.name)

因此,现在我的目标是从“ Ship”类中从另一段代码中获取表列及其属性。我想我可以使用工具来处理它,但是SQLAlchemy API是否提供任何方法?

关注者
0
被浏览
81
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以从Table对象获取所需的信息:

    • Ship.__table__.columns 将为您提供列信息
    • Ship.__table__.foreign_keys 将列出外键
    • Ship.__table__.constraintsShip.__table__.indexes您可能会发现其他有用的属性


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看