检查模块提供 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.