检查模块提供 inspect() 函数,它提供有关各种SQLAlchemy对象的运行时信息,包括核心和ORM中的这些对象。
这个 inspect() 函数是SQLAlchemy公共API的入口点,用于查看内存中对象的配置和构造。取决于传递给的对象的类型 inspect() 返回值要么是提供已知接口的相关对象,要么在许多情况下返回对象本身。
其基本原理是 inspect() 是双重的。其一是它不再需要了解SQLAlChemy中的各种“信息获取”函数,例如 Inspector.from_engine() (1.4中已弃用), instance_state() , class_mapper() ,以及其他。另一种是,它的返回值 inspect() 保证遵守记录在案的API,从而允许以向前兼容的方式构建构建在SQLAlChemy配置之上的第三方工具。
| Object Name | Description | 
|---|---|
| inspect(subject[, raiseerr]) | 为给定目标生成检验对象。 | 
为给定目标生成检验对象。
在某些情况下,返回的值可能与给定的对象相同,例如 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 对象,即 descriptor 与映射类关联。此描述符引用 MapperProperty ,这通常是 ColumnProperty 或 RelationshipProperty 通过它的 QueryableAttribute.property 属性。
AliasedClass -返回一个 AliasedInsp 对象。
flambé! the dragon and The Alchemist image designs created and generously donated by Rotem Yaari.
Created using Sphinx 4.2.0.