首页 > 解决方案 > 如何使用元类创建类似于 SQLAlchemy 的声明性基本行为?

问题描述

我正在尝试模仿 SQLAlchemy 的声明性基本行为。我想做的是定义一堆从基类继承的模型,然后执行一些类似Base.meta.create_all初始化一些表、索引等的操作。

我所做的是让我的自定义Base类使用一个创建一些映射的类的metadata参数,按照这个例子。BaseMeta

问题是 SQLAlchemy 在 Base 类中有这个 MetaData 类,它包含类似的方法create_alldrop_all并且以某种方式读取从Base. 我玩了一点,它有点工作,但它与这个有所有引用的类Base.__subclasses__()无关。MetaDataTable

请注意,我不是在问如何使用 SQLAlchemy,我正在尝试创建一个自定义的类似 SQLAlchemy 的克隆东西来学习。

标签: pythonsqlalchemyormmetaclass

解决方案


推荐阅读