SQLAlchemy 2.0 文档
运行时检查 API¶
inspection 模块提供了 inspect()
函数,该函数提供关于各种 SQLAlchemy 对象(包括 Core 和 ORM 中)的运行时信息。
inspect()
函数是 SQLAlchemy 的公共 API 的入口点,用于查看内存中对象的配置和构造。根据传递给 inspect()
的对象类型,返回值将是提供已知接口的相关对象,或者在许多情况下,它将返回对象本身。
inspect()
的基本原理是双重的。一是它取代了对 SQLAlchemy 中各种“信息获取”函数的了解需求,例如 Inspector.from_engine()
(在 1.4 中已弃用), instance_state()
, class_mapper()
以及其他函数。 另一个是 inspect()
的返回值保证遵循已记录的 API,从而允许构建在 SQLAlchemy 配置之上的第三方工具以向前兼容的方式构建。
对象名称 | 描述 |
---|---|
inspect(subject[, raiseerr]) |
为给定的目标生成一个检查对象。 |
- function sqlalchemy.inspect(subject: Any, raiseerr: bool = True) → Any¶
为给定的目标生成一个检查对象。
在某些情况下,返回值可能与给定的对象相同,例如,如果传递了
Mapper
对象。 在其他情况下,它将是给定对象的已注册检查类型的实例,例如,如果传递了Engine
,则返回Inspector
对象。- 参数:
subject¶ – 要检查的主题。
raiseerr¶ – 当
True
时,如果给定的主题不对应于已知的 SQLAlchemy 检查类型,则会引发sqlalchemy.exc.NoInspectionAvailable
。 如果False
,则返回None
。
可用的检查目标¶
以下是许多最常见检查目标的列表。
Connectable
(即Engine
,Connection
) - 返回Inspector
对象。ClauseElement
- 所有 SQL 表达式组件,包括Table
,Column
, 充当它们自己的检查对象,这意味着传递给inspect()
的任何这些对象都会返回它们自身。object
- 给定的对象将由 ORM 检查映射 - 如果是,则返回表示对象映射状态的InstanceState
。InstanceState
还通过AttributeState
接口提供对每个属性状态的访问,以及通过History
对象提供对任何属性的每次刷新“历史记录”的访问。另请参阅
type
(即类) - 给定的类将由 ORM 检查映射 - 如果是,则返回该类的Mapper
。另请参阅
映射属性 - 将映射属性传递给
inspect()
,例如inspect(MyClass.some_attribute)
,返回QueryableAttribute
对象,它是与映射类关联的 描述符。 此描述符通过其QueryableAttribute.property
属性引用MapperProperty
,它通常是ColumnProperty
或RelationshipProperty
的实例。AliasedClass
- 返回AliasedInsp
对象。
flambé! 龙和 炼金术士 图像设计由 Rotem Yaari 创作并慷慨捐赠。
使用 Sphinx 7.2.6 创建。 文档最后生成时间:2025 年 3 月 11 日星期二下午 02:40:17 EDT