我想使用命令式数据类映射将我的数据类映射到列
以下教程我将定义模型:
@dataclass
class User:
id: int = field(init=False)
name: str = None
fullname: str = None
nickname: str = None
addresses: List[Address] = field(default_factory=list)
Run Code Online (Sandbox Code Playgroud)
然后将其映射到列:
user = Table(
"user",
metadata_obj,
Column("id", Integer, primary_key=True),
Column("name", String(50)),
Column("fullname", String(50)),
Column("nickname", String(12)),
)
Run Code Online (Sandbox Code Playgroud)
最后我用一些对象填充数据库。当我想取回模型时出现问题;
q = select(User)
first = engine.execute(q).first()
Run Code Online (Sandbox Code Playgroud)
这给了我一个 sqlalchemy.engine.row.LegacyRow 实例。(我知道我在 _mapping 属性下得到了 dict)当我想从 ORM 中获取 User 实例时,它更多的是一个低级结构。
此外,由于 id 字段上的 init=False 选项,创建构造函数类方法不会有帮助。
那么可以使用我的模型吗?