SQLAlchemy 2.0 文档
SQLAlchemy Core
项目版本
运行时检查 API¶
检查模块提供 inspect()
函数,它可以提供有关各种 SQLAlchemy 对象的运行时信息,包括核心和 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 创建。文档最后生成时间: 2024 年 11 月 8 日星期五 上午 08:41:19 EST