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

标签 python sqlite sqlalchemy instrumentation

我有一个用表映射的类,在我的例子中是以声明的方式,我想从这个类中“发现”表属性、列、名称、关系:

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 有没有提供任何方法?

最佳答案

您需要的信息可以从 Table 获得对象:

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

关于python - 如何从 SQLAlchemy 映射对象中发现表属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2441796/

相关文章:

元组列表时的 Python 3 : When to use dict,?

SQL - 计算遗漏结果的数量

python - SQLAlchemy 'prepared' 状态

Android - 用于静态数据的 XML 或 SQLite

java - 无法从 SQLite 数据库填充我的 Activity (DrinkActivity)

python - SQLAlchemy 对一个类的多个身份进行多态

mysql - SQLAlchemy 可以独立于框架单独使用吗?是否推荐这样做?

python - 为什么 os.path.join() 在这种情况下不起作用?

使用 GDB 进行 Python 内存调试

python - 返回数学错误(除以 0 等),否则会导致方法崩溃