运行时检查 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

可用的检查目标

以下是许多最常见检查目标的列表。